[EMAIL PROTECTED] a �crit r�cemment que :

> je vient de changer de distrib. J'avait une mandrake 6.2 et me voila avec
> une debian 2.2.
> Mon probleme est que je n'arrive plus � compiler certains truc dont:
> -pour faire un test simple :
> //////////////////////////////////////////////////
> #include <stdio.h>
> #include <stdlib.h>
> #include <math.h>
> 
> int main(int argc, char *argv[]){
>         double N;
> 
>         N=sqrt(4.0);
>         printf("%d ",N);
>         printf("Hello, world!\n");
>         return EXIT_SUCCESS;
> }
> ///////////////////////////////////////////////////
> 
> gcc main.c -o main me retourne:
> main.o: In function `main':
> ~/main.c:30: undefined reference to `sqrt'
> collect2: ld returned 1 exit status
> 


Ce comportement est normal.
c'�tait quoi le compilateur sous Mandrake 6.2 ? 

"undefined reference to sqrt" signifie bien ce que �a veut dire. Le
compilateur ne trouve pas le code de sqrt

Il faut lier ton code avec la biblioth�que math�matique

gcc - -lm main.c -o main 

C'est le comportement de tous les compilateurs sous Unix que je
connais. La biblioth�que math�matique est s�par�e et n�cessite donc
d'�tre ajout�e manuellement � l'�dition de liens.


> meme chose avec les librairies curses...

Et m�me r�ponse, il faut indiquer � l'�diteur de liens (ld) la
biblioth�que suppl�mentaire.

> 
> -un autre message d'erreur m'empeche d'arriver � la fin de la compilation
> de lcdproc alors que ca marchais sous mon anciene distrib
> 

Quel est le message d'erreur exact ?

-- 
Guillaume Rumeau <[EMAIL PROTECTED]>

� L'homme est dou� d'une vaste intelligence 
qui regarde devant elle et au-del� � (J.L)

Répondre à