Repository 32bit  Forum
Repository 64bit  Wiki

librerie standard C [RISOLTO]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

librerie standard C [RISOLTO]

Messaggioda ebit » mer dic 10, 2008 18:21

Ciao a tutti.
Immagino sia una domanda un po' stupida, ma...
Sto sviluppando dei programmi in C.
Lavoro da tempo su una vecchia macchina in cui è installato Slackware 3.5 (...funziona bene da 10 anni...).
Oggi ho installato 12.1 (kernel 2.6.24.5-smp, bash) su una nuova macchina ed ho provato a compilare alcuni sorgenti C scritti da me.
gcc non trova gli header e le relative librerie C che utilizzo: stdio.h, stdef.h, stddef.h e math.h.
ho provato a cercarle ma se ho capito bene in questa versione non esiste la libc presente nelle vecchia versione 3.5
ho provato anche a crearmele installando una vecchia glibc-2.0.6 come libreria test, ma non ci sono riuscito.
Qualcuno per cortesia sa darmi qualche indicazione su come fare?
Molte grazie
Ultima modifica di ebit il gio dic 11, 2008 9:46, modificato 2 volte in totale.
ebit
Linux 1.0
Linux 1.0
 
Messaggi: 5
Iscritto il: mer dic 10, 2008 18:07
Nome Cognome: michele morelli
Slackware: 12.1
Kernel: 2.6.24.5-smp
Desktop: nessuno

Re: librerie standard C

Messaggioda Mario Vanoni » mer dic 10, 2008 18:35

ebit ha scritto:Ciao a tutti.
Immagino sia una domanda un po' stupida, ma...
Sto sviluppando dei programmi in C.
Lavoro da tempo su una vecchia macchina in cui è installato Slackware 3.5 (...funziona bene da 10 anni...).
Oggi ho installato 12.1 (kernel bare.i, bash) su una nuova macchina ed ho provato a compilare alcuni sorgenti C scritti da me.
gcc non trova gli header e le relative librerie C che utilizzo: stdio.h, stdef.h, stddef.h e math.h.
ho provato a cercarle ma se ho capito bene in questa versione non esiste la libc presente nelle vecchia versione 3.5
ho provato anche a crearmele installando una vecchia glibc-2.0.6 come libreria test, ma non ci sono riuscito.
Qualcuno per cortesia sa darmi qualche indicazione su come fare?
Molte grazie


Ai tempi non esistevano
stdlib.h
unistd.h

Poi importanti oggi
string.h
sys/types.h

Prova ad includerli
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 20:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Re: librerie standard C

Messaggioda ebit » mer dic 10, 2008 18:50

Ti ringrazio, ma, da quanto leggo, non mi sembra contengano le funzioni che utilizzo.
grazie comunque
ebit
Linux 1.0
Linux 1.0
 
Messaggi: 5
Iscritto il: mer dic 10, 2008 18:07
Nome Cognome: michele morelli
Slackware: 12.1
Kernel: 2.6.24.5-smp
Desktop: nessuno

Re: librerie standard C

Messaggioda targzeta » mer dic 10, 2008 19:03

Scusami, ma come fa a non trovarti la libreria standard? Il pacchetto "glibc-2.7-i486-10" della Slackware 12.1, contiene sicuramente il file "/usr/include/stdio.h". O non hai quel pacchetto .... e mi sembra molto strano, oppure hai qualche problema da qualche altra parte, prova ad esempio ad includere tu stesso la directory di ricerca degli include.

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: librerie standard C

Messaggioda ebit » mer dic 10, 2008 19:19

Hai ragione. Sembra impossibile anche a me, ma non riesco a trovarla.
Ne' trovo i singoli file.
credo mi convenga reinstallare il sistema
grazie
ebit
Linux 1.0
Linux 1.0
 
Messaggi: 5
Iscritto il: mer dic 10, 2008 18:07
Nome Cognome: michele morelli
Slackware: 12.1
Kernel: 2.6.24.5-smp
Desktop: nessuno

Re: librerie standard C

Messaggioda targzeta » mer dic 10, 2008 19:29

ebit ha scritto:...
Ne' trovo i singoli file.
...

Ti assicuro che il file '/usr/include/stdio.h' è nel pacchetto delle glibc (puoi vederlo anche dal sito della slackware), se non trovi quel file vuol dire che si sono installate male le glibc, ma è strano, hai controllato l'md5 del pacchetto?

Magari prova solo a reinstallare quel pacchetto senza reinstallare tutto.

In bocca al lupo ;),
Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: librerie standard C

Messaggioda ebit » mer dic 10, 2008 19:45

hai ragione, non era installato. l'ho installato ed adesso funziona
eppure avevo optato per installare tutte le librerie e pacchetti di sviluppo; pensavo persino non fosse possibile installare senza quel pacchetto, ma forse nelle nuove versioni di linux il kernel non viene più compilato all'installazione. onestamente non sono così esperto da sapere queste cose
ti ringrazio molto per l'aiuto
ciao
ebit
Linux 1.0
Linux 1.0
 
Messaggi: 5
Iscritto il: mer dic 10, 2008 18:07
Nome Cognome: michele morelli
Slackware: 12.1
Kernel: 2.6.24.5-smp
Desktop: nessuno

Re: librerie standard C

Messaggioda targzeta » mer dic 10, 2008 19:56

Guarda che il kernel che io sappia non è mai stato compilato durante la fase di installazione, è un pacchetto proprio per questo :).

Comunque, ora che hai risolto dovresti modificare il titolo del primo post che hai scritto aggiungendoci qualcosa come "[Risolto]" all'inizio o alla fine del titolo attuale. In questo modo altri che hanno il tuo stesso problema, facendo una ricerca con google possono orientarsi meglio su quali link clikkare.

Benvenuto tra noi,
Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: librerie standard C [RISOLTO]

Messaggioda ebit » gio dic 11, 2008 10:27

Molte grazie ancora per l'aiuto e per il benvenuto.
Avrai sicuramente ragione, come dicevo, non sono certo un esperto; mi sembra di ricordare che una volta si dovesse lanciare il make, come per le patch, e che ci volesse più di un'ora di elaborazione sui 486 (ma sono ricordi preistorici e sbagliati, da quanto mi dici e da quel che leggo in un libro sulla 3.0 ho recuperato in soffitta: la procedura di installazione è simile a quella di oggi).

Riassumo quanto mi è successo, per utilità di chi leggerà, sperando eviti di fare le stupidaggini che ho fatto io:
-ho installato le versione Slackware 12.1 da cdrom, optando per i pacchetti:a,ap,d,f,k,l,n con installazione full,
-tuttavia, è probabile che non abbia effettuato correttamente quanto ho descritto, infatti:
-non mi è riuscito di compilare/linkare alcuni programmi sorgenti in C ansi, che vengono compilati linkati ed eseguiti senza errori su vecchie macchine con Slackware 3.5: gcc ha riportato come errore di non trovare stdio.h, stdlib.h;
-ho verificato la presenza della libreria glibc: non era presente sul sistema;
-ho installato dal cdrom la glibc-2.7-i486-10 ed il problema si è risolto.

Ciao.
ebit
Linux 1.0
Linux 1.0
 
Messaggi: 5
Iscritto il: mer dic 10, 2008 18:07
Nome Cognome: michele morelli
Slackware: 12.1
Kernel: 2.6.24.5-smp
Desktop: nessuno

Re: librerie standard C [RISOLTO]

Messaggioda conraid » gio dic 11, 2008 11:53

ebit ha scritto:Molte grazie ancora per l'aiuto e per il benvenuto.
Avrai sicuramente ragione, come dicevo, non sono certo un esperto; mi sembra di ricordare che una volta si dovesse lanciare il make, come per le patch, e che ci volesse più di un'ora di elaborazione sui 486 (ma sono ricordi preistorici e sbagliati, da quanto mi dici e da quel che leggo in un libro sulla 3.0 ho recuperato in soffitta: la procedura di installazione è simile a quella di oggi).

Riassumo quanto mi è successo, per utilità di chi leggerà, sperando eviti di fare le stupidaggini che ho fatto io:
-ho installato le versione Slackware 12.1 da cdrom, optando per i pacchetti:a,ap,d,f,k,l,n con installazione full,
-tuttavia, è probabile che non abbia effettuato correttamente quanto ho descritto, infatti:
-non mi è riuscito di compilare/linkare alcuni programmi sorgenti in C ansi, che vengono compilati linkati ed eseguiti senza errori su vecchie macchine con Slackware 3.5: gcc ha riportato come errore di non trovare stdio.h, stdlib.h;
-ho verificato la presenza della libreria glibc: non era presente sul sistema;
-ho installato dal cdrom la glibc-2.7-i486-10 ed il problema si è risolto.

Ciao.


se hai fatto l'installazione "full" glibc c'era.
Se invece hai fatto una scelta è possibile che si sia installato soalmente glibc-solibs che contiene le librerie essenziali e non tutto il pacchetto
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12022
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current


Torna a Programmazione

Chi c’è in linea

Visitano il forum: neongen e 2 ospiti