Ld rapporte une erreur de reference
brutus
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
Si j'essai de compiler le programme suivant avec
gcc sin30.c -o sin30
ld rapporte une erreur disant qu'il ne trouve pas la reference a la fonction sin().
Mais si je remplace les arguments param et pi par leur valeur numerique ca compile sans probleme et le programme s'execute correctement.
Si j'essai de compiler le programme suivant avec
gcc sin30.c -o sin30
ld rapporte une erreur disant qu'il ne trouve pas la reference a la fonction sin().
Mais si je remplace les arguments param et pi par leur valeur numerique ca compile sans probleme et le programme s'execute correctement.
/* programme sin30.c */
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int main ()
{
double param, result;
param = 30.0;
result = sin (param*PI/180.0);
printf ("The sine of %lf degrees is %lf.\n", param, result );
return 0;
}
A voir également:
- Iptv smarters pto
- Une erreur s'est produite instagram ✓ - Forum Instagram
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur t32 ✓ - Forum Livebox
- Rapport erreur windows - Guide
- Erreur 0x80070643 - Accueil - Windows
3 réponses
Salut,
Oui il faut utiliser -lm (L minuscule) pour que l'édition des liens se déroule correctement.
De plus, ne met pas %lf pour afficher un double mais seulement %f.
Cdlt
Oui il faut utiliser -lm (L minuscule) pour que l'édition des liens se déroule correctement.
De plus, ne met pas %lf pour afficher un double mais seulement %f.
Cdlt
%f ce n'est pas pour les float et %lf pour les double ??
Oui. Mais printf en tant que fonction à nombre d'arguments variables, le float sera converti en double. Donc %f dans ce cas désigne plutôt un double. %lf a un comportement indéfini dans printf en C90. En C99, il est accepté pour éviter la confusion, mais il désignera %f.
Cdlt
Oui. Mais printf en tant que fonction à nombre d'arguments variables, le float sera converti en double. Donc %f dans ce cas désigne plutôt un double. %lf a un comportement indéfini dans printf en C90. En C99, il est accepté pour éviter la confusion, mais il désignera %f.
Cdlt