Pagina 1 di 1
librerie standard C [RISOLTO]
Inviato: mer 10 dic 2008, 18:21
da ebit
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
Re: librerie standard C
Inviato: mer 10 dic 2008, 18:35
da Mario Vanoni
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
Re: librerie standard C
Inviato: mer 10 dic 2008, 18:50
da ebit
Ti ringrazio, ma, da quanto leggo, non mi sembra contengano le funzioni che utilizzo.
grazie comunque
Re: librerie standard C
Inviato: mer 10 dic 2008, 19:03
da targzeta
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
Re: librerie standard C
Inviato: mer 10 dic 2008, 19:19
da ebit
Hai ragione. Sembra impossibile anche a me, ma non riesco a trovarla.
Ne' trovo i singoli file.
credo mi convenga reinstallare il sistema
grazie
Re: librerie standard C
Inviato: mer 10 dic 2008, 19:29
da targzeta
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
Re: librerie standard C
Inviato: mer 10 dic 2008, 19:45
da ebit
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
Re: librerie standard C
Inviato: mer 10 dic 2008, 19:56
da targzeta
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
Re: librerie standard C [RISOLTO]
Inviato: gio 11 dic 2008, 10:27
da ebit
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.
Re: librerie standard C [RISOLTO]
Inviato: gio 11 dic 2008, 11:53
da conraid
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