Pb de compilation
Résolu/Fermé
christouff
Messages postés
77
Date d'inscription
dimanche 6 août 2006
Statut
Membre
Dernière intervention
16 septembre 2008
-
5 juin 2008 à 18:26
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 5 juin 2008 à 22:44
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 5 juin 2008 à 22:44
2 réponses
mamiemando
Messages postés
33093
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
4 mai 2024
7 751
5 juin 2008 à 18:55
5 juin 2008 à 18:55
Rajoute l'option de compilation -lm. Exemple :
On compile
Et on exécute :
#include <math.h> #include <stdio.h> int main(){ printf("%Lf\n",powl(2,8)); return 0; }
On compile
gcc -W -Wall -lm plop.c
Et on exécute :
(mando@aldur) (~) $ ./a.out 256.000000Bonne chance
mamiemando
Messages postés
33093
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
4 mai 2024
7 751
5 juin 2008 à 22:44
5 juin 2008 à 22:44
Par ce que tu fais appel à une fonction de la librairie math (d'où le lm).
Les headers (math.h en l'occurrence) sont quand à eux dans un endroits standard donc tout se passe comme si c'était le header standard. Cependant le code source de la fonction n'est pas directement dans la libc, et c'est pourquoi il faut linker ton programme avec la librairie math.
Ne t'en fais pas on est tous tombés dans le panneau la première fois :-) Ceci dit quand tu tapes :
... on te rappelle tout (header prototype et linkage) :
Bonne continuation
Les headers (math.h en l'occurrence) sont quand à eux dans un endroits standard donc tout se passe comme si c'était le header standard. Cependant le code source de la fonction n'est pas directement dans la libc, et c'est pourquoi il faut linker ton programme avec la librairie math.
Ne t'en fais pas on est tous tombés dans le panneau la première fois :-) Ceci dit quand tu tapes :
man powl
... on te rappelle tout (header prototype et linkage) :
POW(3) Manuel du programmeur Linux POW(3) NOM pow, powf, powl - Fonction puissance SYNOPSIS #include <math.h> double pow(double x, double y); float powf(float x, float y); long double powl(long double x, long double y); Effectuez l’édition des liens avec l’option -lm. ...
Bonne continuation
5 juin 2008 à 19:15
Sinon pourquoi il faut rajouter le -lm
je suis novice desol
merci