Log2 en C sous linux
Résolu
hnouna2007
Messages postés
77
Statut
Membre
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j un problème qui m'empêche de dormir. en fait je voulais un petit programme qui calcul les logarithmes.
j'ai écris ce code mais lors de la compilation il m'affiche : attention implicite declaration of built_ in fonction log2.
voici le code que j'ai écris:
#include <math.h>
#include <stdio.h>
int main()
{
double x=5;
x=log2(x);
return 0;
}
aider moi s'il vous plait
j un problème qui m'empêche de dormir. en fait je voulais un petit programme qui calcul les logarithmes.
j'ai écris ce code mais lors de la compilation il m'affiche : attention implicite declaration of built_ in fonction log2.
voici le code que j'ai écris:
#include <math.h>
#include <stdio.h>
int main()
{
double x=5;
x=log2(x);
return 0;
}
aider moi s'il vous plait
Configuration: Windows XP Firefox 2.0.0.16
3 réponses
-
Salut
Pour compiler avec la bibliothèque math.h, il ne faut pas oublier -lm (L minuscule).
Voilà, tu peux retourner dormir ;)
Cdt-
merci feddy pour ta réponse.
en fait quand je compile directement sans -lm: il m'affiche ceci:
attention : incompatible implicit declaration of built-in function 'log2'
/tmp/ccWNbx2m.o: In function `main':
log.c:(.text+0x18): undefined reference to `log2'
collect2: ld a retourné 1 code d'état d'exécution
et quand je compile avec -lm il m'affiche:
attention : incompatible implicit declaration of built-in function 'log'
-
-
Oui, c'est normal. La fonction log2 ne fait pas partie de la bibliothèque standard C99. Et comme par défaut gcc prend le standard C89. Il affiche un warning. Pour spécifier à gcc que tu souhaites utiliser le standard C99, utilise le flag -std=C99.
Cdt -
man gcc dit : -std=c99, avec un 'c' minuscule.
man est ton ami man