--- Tommaso Leddi <[EMAIL PROTECTED]> ha scritto: >
Sto facendo delle prove di compilazione usando gcc.
> Ho un sorgente t.c che � brevemente cos�:
>
-----------------------------------------------------
> /* prova */
>
> #include <math.h>
> #include <stdio.h>
> #include <stdlib.h>
>
> int main(int argc, char *argv[]) {
> printf( "%f /n", sqrt( 33 ) );
> return EXIT_SUCCESS;
> }
> ---------------------------------------------------
> compilandolo mi da quest'output:
>
> [tom@localhost My]$ gcc t.c
> /tmp/ccALrAqt.o: In function `main':
> /tmp/ccALrAqt.o(.text+0x14): undefined reference to
> `sqrt'
> collect2: ld returned 1 exit status
>
> Cosa mi manca per compilarlo?
> Cosa significa esattamente questo messaggio
> d'errore?
> Devo linkare qualche libreria particolare?
> sqrt() fa parte della libreria ANSI e richiede
> math.h
> Se gcc non trova da solo le librerie standard, come
> mai non trovo un
> messaggio di errore anche per printf?
>
E' senz'altro un problema di librerie, anche perche'
il msg arriva da ld, che e' il linker. Purtroppo non
conosco bene gcc perche' non mi sono ancora lanciato a
programmare su linux, ma immagino che sqrt() sia su
qualche libreria particolare, mentre la printf() e'
sicuramente nelle librerie standard. Dovresti scoprire
qual'e' questa libreria e specificarla a gcc quando
lanci la compilazione (o probabilmente si puo'
impostare qualche variabile di ambiente). Credo che il
"man" possa darti delle indicazioni anche sulle
funzioni delle librerie c; hai provato "man sqrt"?
Ciao! Steo.
______________________________________________________________________
Yahoo! ADSL: tutta la musica e i video che vuoi ad alta velocit�!
http://it.yahoo.com/mail_it/foot/?http://adsl.yahoo.it
L'attivazione � gratuita fino al 31/03/02