Newsgroup: it.comp.os.linux.development
Titolo: errore con gcc

ciao scusate per le mie niubbate, ma le sto provando tutte.
allora faccio un programma dove devo inserire prima di main()
l'istruzione #include<math.h>, poichè dentro devo utilizzare la radice
quadrata.
quindi sta "chiamata" dice al programma vai a controllare nella
libreria math.h
al che quando compilo
faccio
bash-3.1$ gcc equazioni2.c -o equazionedisecondogrado.o
equazioni2.c: In function 'main':
equazioni2.c:9: warning: incompatible implicit declaration of built-in
function 'printf'
equazioni2.c:10: warning: incompatible implicit declaration of built-
in function 'scanf'
equazioni2.c:34:2: warning: no newline at end of file
/tmp/ccOZnk9J.o: In function `main':
equazioni2.c:(.text+0x123): undefined reference to `sqrt'
equazioni2.c:(.text+0x177): undefined reference to `sqrt'
collect2: ld returned 1 exit status
e non mi esce l'output , ho pensato che forse il compilatore non sa
dove andare a cercare lalibreria
e che forse devo passare il parametro L/usr/include manon funziona

 bash-3.1$ gcc equazioni2.c -o equazionedisecondogrado.o
gcc equazioni2.c -o equazionedisecondogrado.o -lmath ?
-- 
 . ''`.  Debian maintainer | 
http://snipurl.com/qa_page/
 : :'  :  Linuxer #334216  |  
http://www.hanskalabs.net/
 `. `'`    GPG: 1392B174   | 
http://www.debianizzati.org/
   `-   2BAB C625 4E66 E7B8 450A C3E1 E6AA 9017 1392 B174

 gcc equazioni2.c -o equazionedisecondogrado.o -lmath ?
niente!
bash-3.1$ gcc equazioni2.c -o equazionedisecondogrado.o -lmath
equazioni2.c: In function 'main':
equazioni2.c:9: warning: incompatible implicit declaration of built-in
function 'printf'
equazioni2.c:10: warning: incompatible implicit declaration of built-
in function 'scanf'
equazioni2.c:34:2: warning: no newline at end of file
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../i486-slackware-
linux/bin/ld: cannot find -lmath
collect2: ld returned 1 exit status
inoltre :
 bash-3.1$ whereis math.h
math: /usr/include/math.h
ma se provo a fare
bash$ gcc equazioni2.c -o equazionedisecondogrado.o -l/usr/include
equazioni2.c: In function 'main':
equazioni2.c:9: warning: incompatible implicit declaration of built-in
function 'printf'
equazioni2.c:10: warning: incompatible implicit declaration of built-
in function 'scanf'
equazioni2.c:34:2: warning: no newline at end of file
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../i486-slackware-
linux/bin/ld: cannot find -l/usr/include/


 collect2: ld returned 1 exit status
Scusami, prima non ho letto bene gli errori.
Aggiungi:
#include <stdio.h>
Poi, non è -lmath, è -lm, scusami.
Ciao,
David


 David
ma che printf("scusami") stai dicendo? sei cosi gentile ad aiutarmi
con -lm funziona benissimo senza includere <stdio.h> , grazie davvero,
man gcc è troppo difficile per me al momento , spero di approcciarlo
tra qualche sett.
Non ti chiedo nemmeno perchè dopo l non c'è una path ma una semplice
m, devo studiare ancora:)
Ciao

 devo studiare ancora:)
I path li specifichi con -L (anche piu` di uno, con diversi -L)
Con -l specifichi il nome della libreria da usare.
-lm viene "espanso" in "libm.so", -lgtk viene espanso in "libgtk.so", ecc.
Bye.

 Bye.
caspita che figata sto c mi piace proprio. ciao grazie per la dritta

 d'ambiente LD_LIBRARY_PATH, opzione '-Wl' del compilatore.
altro consiglio : imparare il prima possibile l'uso di make/Makefile per
la cimpilazione

 man gcc è troppo difficile per me al momento
Non devi guardare il manuale di gcc, ma il manuale della funzione:
man 3 printf
Riformattazione di printf(3), attendere prego...
PRINTF(3)                                             Linux Programmer's
Manual                                            PRINTF(3)
NAME
       printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf,
vsnprintf - formatted output conversion
SYNOPSIS
       #include <stdio.h>
       int printf(const char *format, ...);
       int fprintf(FILE *stream, const char *format, ...);
       int sprintf(char *str, const char *format, ...);
       int snprintf(char *str, size_t size, const char *format, ...);
...eccetera
-- 
Lorenzo `paulatz' Paulatto
Trieste
``Grandissima mi par l'inezia di coloro che vorrebbero che Iddio avesse
fatto l'universo più proporzionato alla piccola capacità del lor discorso.''
     --Galileo Galilei (Opere VII)