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.
Rispondi
ebit
Linux 0.x
Linux 0.x
Messaggi: 5
Iscritto il: mer 10 dic 2008, 18:07
Nome Cognome: michele morelli
Slackware: 12.1
Kernel: 2.6.24.5-smp
Desktop: nessuno

librerie standard C [RISOLTO]

Messaggio 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
Ultima modifica di ebit il gio 11 dic 2008, 9:46, modificato 2 volte in totale.

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

Re: librerie standard C

Messaggio 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

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

Re: librerie standard C

Messaggio da ebit »

Ti ringrazio, ma, da quanto leggo, non mi sembra contengano le funzioni che utilizzo.
grazie comunque

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: librerie standard C

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

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

Re: librerie standard C

Messaggio 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

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: librerie standard C

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

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

Re: librerie standard C

Messaggio 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

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: librerie standard C

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

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

Re: librerie standard C [RISOLTO]

Messaggio 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.

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: librerie standard C [RISOLTO]

Messaggio 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

Rispondi