Pb de compilation
Résolu
Bonjour,
J'ai un problème lorsque je compile on me met:
[sotty@localhost 28-03-08]$ gcc -o readFrame readFrame.o
readFrame.o: In function `main':
readFrame.c:(.text+0x338): undefined reference to `powl'
collect2: ld a retourné 1 code d'état d'exécution
Sachant que je comprend rien de ce qui est écrit.
Merci
J'ai un problème lorsque je compile on me met:
[sotty@localhost 28-03-08]$ gcc -o readFrame readFrame.o
readFrame.o: In function `main':
readFrame.c:(.text+0x338): undefined reference to `powl'
collect2: ld a retourné 1 code d'état d'exécution
Sachant que je comprend rien de ce qui est écrit.
Merci
Configuration: Linux Mandriva Firefox 2.0.0.13
A voir également:
- Pb de compilation
- Breach compilation c'est quoi - Guide
- Compilation fichier pdf - Guide
- Erreur de compilation ✓ - Forum Excel
- Erreur de compilation ✓ - Forum Bureautique
- Erreur de compilation projet ou bibliothèque introuvable - Forum VB / VBA
2 réponses
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
Sinon pourquoi il faut rajouter le -lm
je suis novice desol
merci