Undefined reference to 'sqrt'
wachbaik
Messages postés
60
Statut
Membre
-
phenix -
phenix -
bonsoir tous le monde
Voila j'essaye de ciompiler un petit programme en C et à chaque et j'ai un problème de compilation avec la fonction sqrt du genre : "undefined reference to sqrt"
malgré que j'ai mis le #include <math.h>
Merci pour votre aide
Voila j'essaye de ciompiler un petit programme en C et à chaque et j'ai un problème de compilation avec la fonction sqrt du genre : "undefined reference to sqrt"
malgré que j'ai mis le #include <math.h>
Merci pour votre aide
Configuration: Windows Vista Firefox 3.5.4
6 réponses
-
Sous Windoze, je ne sais pas... mais avec gcc et Linux, il ne suffit pas de mettre 'math.h' (ce qui résoud la compilation) il faut aussi préciser la bibliothèque mathématique ('- lm' pour résoudre le 'linkage'), ce qui est logique.
Bonne continuation. -
Étrange !
pourtant sqrt fait bien partie du modèle standard :)
pourrais-tu nou smontrer la ligne de code qui appelle sqrt ainsi que les définitions des variables.
Merci et bonne soirée en attendant -
#include <stdio.h>
#include <math.h> <-----------------
#include <stdlib.h>
int main (){
int n = 10 , i , j ; <----- déclaration de variables
printf(" introduisez votre chiffre /n");
if (( n = getchar()) != EOF && n != '\n' && n > '0' && n <= '9') { /*
n = n - '0' ;
printf( "les nombres premiers inférieurs à %d", n ) ;
for(i = 2 ; i < sqrt(n) ; i++ ){ <----------------
if(table[i] != -1){
for(j = i+i ; j < n ; j+=i ){
table[j] = -1 ;
}
}
}
return 0 ;
} -
héhé !
relis donc math.h
tu y verras avec consternation que l'argument de sqrt est un flottant pas un entier :-( -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
je travaille sous linux
donc la commande est : gcc -o monProg.exe monProg.c
et le linkage je le fait comment de la bibliothèque math
?? -
Il faut que le -lm soit à la fin de la ligne et non au début:
Ok:gcc -o diehard diehard.o -lm
Ko:gcc -lm -o diehard diehard.o
Sais pas pourquoi.