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

Rispondere a