Bonjour,

Je suis (presque) complètement débutante en programmation et j'ai un problème (logique !)
J'ai déjà parcouru un peu le forum (fait des recherches) mais ça n'a pas résolu mon problème....

Je m'explique :

J'ai écrit un "code" qui utilise la librairie math.h (et aussi iostream et fstream sachant que pour iostream, c'est temporaire... le temps de trouver comment faire autrement)

Le problème :

Lorsque je compile avec gcc, j'ai soit une série interminable d'insultes, soit lorsque je retire le ".h" de math.h l'erreur suivante :
tmp/ccie1EHJ.o: dans la fonction « main »:
trucmuche.cpp: (.text+0x26): référence indéfinie vers « sin »
collect2: ld a retourné 1 code d'état d'exécution
Remarque :
A l'époque où j'ai eu quelques cours de C++, on nous avait dit que lorsqu'on avait une série d'insultes lors de la compilation, c'est qu'il fallait retirer le ".h" de certaines librairies. Et effectivement, à l'époque, ça marchait (mais ce n'était pas math.h qui m'insultait dans ce cas). C'est pour ça que j'ai essayé de compiler sans le ".h" de math.h.

Une solution :

J'ai trouvé sur le forum je crois, une solution très simple qui consiste à écrire la ligne de compilation suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
gcc -lm -o truc 030507.cpp
En voyant ça, j'ai tout de suite essayé..... mais ça ne change pas grand chose...
Avec le ".h" ---> j'ai la série d'insultes;
Sans le ".h" ---> j'ai la réponse suivante :
050307.cpp:1:16: erreur: math : Aucun fichier ou répertoire de ce type
050307.cpp: In function ‘int main()’:
050307.cpp:41: erreur: ‘atan’ was not declared in this scope

Le truc :

J'ai essayé d'écrire un programme très simple qui ne fait que calculer un sinus. Le seul include de ce programme, c'est le math.h

Lorsque je tape la ligne de compilation avec "-lm", ça marche. Aucune insulte, et il reconnait bien math.h.
De plus, pas plus tard que ce matin, j'ai recompilé un programme assez complexe (pas écrit par moi bien sûr...) à partir de son makefile et je n'ai pas eu de problème avec le math.h

Le programme qui me pose problème reprend certaines fonctions du programme complexe que j'ai compilé ce matin, pour le reste, ce sont essentiellement des gestions de flux.
Le includes présents dans mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
#include <math.h>
#include <iostream>
#include <fstream>
Bon, comme moi je suis plutôt débutante... je ne sais pas quoi faire.

Est-ce que ça peut venir non pas de math.h mais des deux autres librairies (qui ne sont présentes ni dans le code tout pourri qui m'a servi à tester la méthode avec le -lm et ni dans le programme complexe qui n'est pas de moi ?

J'espère que vous saurez m'éclairer ... En attendant, j'espère avoir été assez claire dans ce que je raconte..

Hibiscuit