Log2 en C sous linux

Résolu
hnouna2007 Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 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
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut
Pour compiler avec la bibliothèque math.h, il ne faut pas oublier -lm (L minuscule).
Voilà, tu peux retourner dormir ;)
Cdt
1
hnouna2007 Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
 
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'
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
1
hnouna2007 Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai compilé le code par: gcc programme .c -lm -std=C99
mais le compilateur m'affiché l'erreur suivante.
cc1: erreur: option "-std=C99" de la ligne de commande non reconnue
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
man gcc dit : -std=c99, avec un 'c' minuscule.
man est ton ami man
1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bien vu ;)
0