Vous n'êtes pas identifié(e).
Visiblement le compilateur ne trouve pas les fonctions mathématiques que j'essaie d'employer. Avec le livre il y a un cdrom contenant les programmes proposés, et lorsque j'essaie de compiler ces programmes c'est exactement pareil. Donc l'erreur ne vient pas de moi.
J'ai regardé dans /usr/include/math.h, qui existe effectivement, mais qui ne contient pas les mots cos(), ni sqrt() recherchées avec un éditeur de texte. Par contre ce fichier fait appel à /usr/bits/mathcalls.h, qui lui contient cos(), sqrt() et autres.
Mais si j'essaie de mettre dans mon programme
#include </usr/include/bits/mathcalls.h>
en plus de
#include <math.h>
c'est la catastrophe, j'ai des centaines de messages d'erreur.
J'ai pensé, un moment, que c'était peut-être parce que mon ordinateur a un processeur 64 bits (un Turion), aussi j'ai essayé sur mon vieux Armada E500 qui a un pentium 32 bits, et c'est exactement pareil.
Quelqu'un a-t-il une idée sur comment faire comprendre au compilateur que je veux employer ces fonctions?
Merci d'avance et bien cordialement,
C.-M. M.
Dernière modification par cmm1934@orange.fr (27-11-2008 21:58:32)
Hors ligne
Dernière modification par cmm1934@orange.fr (27-11-2008 21:50:39)
Hors ligne
Le fichier libm.a est un fichier archive:
Le man de ar m'apprends que
Un "ar t /usr/lib/libm.a" renvoie des noms de fichiers objets (.o) ou l'on trouve divers fichiers (par exemple k_cos.o, s_cos.o, w_cosh.o, s_ccosh.o, s_ccos.o...) que je suppose correspondre à diverses variantes de la fonction cosinus. Ça ressemble à un mécanisme de redirection vers un fichier objet adapté en fonction de certains paramètres (précision du calcul, standard C utilisé?, autres?).
Je n'ai pas été plus loin, j'écouterais avec attention tout complément d'explication.
Pour trouver la solution, j'avais effectué la recherche sur "undefined reference to `cos'" (avec les guillements).
Bonne soirée.
Hors ligne