il y a 2 fonctions "main" mais dans 2 fichiers différents (main.cpp et math.cpp) car dans math.cpp si je ne mets pas "int main() {}" l'éditeur me dit qu'il y a une erreur :
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
C'est le projet du cours ... j'ai juste fait un copier/coller pour avoir un exemple. Si tu penses que c'est n'importe va te plaindre au professeur i.e : le créateur d'openclassrooms.
Il se trouve que tu as copié de travers (ou dans un répertoire où il y a des trucs), mais bon, si tu as décidé que c'est de la faute au prof, très bien.
Le cours c'est aussi du n'importe quoi, mais bon, ce qu'on t'en dit, c'est pour t'aider.
Donc créateur du cours de C++ le plus détestable de la francophonie, alors ?
Pour faire simple, démerdes toi pour qu'il n'y ai qu'une seule et une seule fonction "main" dans l'ensemble des fichiers .cpp qui serviront comme sources (et les définitions de toutes les fonctions libres ne doivent apparaitre qu'une fois dans l'ensemble des sources, aussi).
Fait en sorte d'avoir la définition de toutes les fonctions que tu utilises, directement ou indirectement depuis la fonction main, dans un des fichiers qui vont servir comme source.
Vérifies comment spécifier qu'un cpp fait partie des sources qui seront compilé (affiché dans une arborescence de l'IDE n'implique pas qu'il sera compilé/fait partie des sources).
Vu les erreurs, et la manière de coder "à l'arrache" du "créateur", je pense qu'au niveau des .h, il y en largement plus qu'il n'en faut.
- Edité par bacelar 11 février 2020 à 18:37:42
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
il y a 2 fonctions "main" mais dans 2 fichiers différents
On dit souvent du mal du cours, mais il faut quand même reconnaître quand le problème ne vient pas du cours mais du lecteur. Le cours explicitement :
Le fichier math.cpp au complet est donc :
avec le code, qui ne contient évidemment pas de fonction main.
Je n'ai pas Code::Block sous la main pour vérifier les instructions pour créer ces fichiers, mais cette partie du cours me semble détaillé et correct. Il faut juste lire correctement, a priori.
Après beaucoup de relecture et après avoir tester correctement le code du cours, il y a bien un problème:
la fonction ajouteDeux() n'est apparemment pas défini.
Message d'erreur:
<code>
[Running] cd "/Users/wahibamehdi/Desktop/c++2/" && g++ main.cpp -o main && "/Users/wahibamehdi/Desktop/c++2/"main
main.cpp:10:9: error: use of undeclared identifier 'ajouteDeux'
b = ajouteDeux(a); //Appel de la fonction
^
1 error generated.
[Done] exited with code=1 in 10.615 seconds
</code>
voici les codes:
pour maths.cpp (fichier source)
<code>
#include"math.h"
intajouteDeux(intnombreRecu)
{
intvaleur(nombreRecu +2);
return valeur;
}
</code>
maths.hpp - maths.h (fichier d'en tête)
<code>
#ifndefMATH_H_INCLUDED
#defineMATH_H_INCLUDED
intajouteDeux(intnombreRecu);
#endif // MATH_H_INCLUDED
</code>
main.cpp (fichier principale)
<code>
#include<iostream>
#include"math.h"
usingnamespacestd;
intmain()
{
inta(2),b(2);
cout <<"Valeur de a : "<< a << endl;
cout <<"Valeur de b : "<< b << endl;
b =ajouteDeux(a); //Appel de la fonction
cout <<"Valeur de a : "<< a << endl;
cout <<"Valeur de b : "<< b << endl;
return0;
}
</code>
et il y a bien une erreur, malheureusement je ne la trouve pas... si quelqu'un pourrait m'aider, ca aiderai aussi beaucoup de gens, ce serait super sympa.
Merci d'avance!
A.M.A.T
PS: j'ai écrit un message à Matthieu Nebra ( celui qui a fait le cours) j'attends une réponse et je reviendrai si il y a une réponse...
- Edité par pro_grammeur 31 juillet 2020 à 19:24:40
Il est preferable de lancer une nouvelle discussion plutot que de presenter ton probleme dans la discussion d'un autre.
Tu n'as pas le meme probleme. Ton probleme vient du fait que tu n'as pas ajouté correctement ton fichier maths.cpp a ton projet dans code::block. C'est un probleme qui arrive souvent. Regarde dans la doc pour savoir comment un fichier source doit etre ajouté dans C::B (je ne connais pas trop cet IDE)
Pour le coup, Visual Code est trop recent pour etre dans le cours. Donc tu as du lire un autre tuto en plus pour l'utiliser, je suppose. Dans tous les cas, le probleme est le meme : maths.cpp n'est pas compilé ou lié au projet. Il faut regarder la doc de ton IDE.
Salut j'utilise l'extension code runner de vscode pour compiler mes fichiers c++ mais le prochain est que je n'arrive pas à compiler plis fichier en même temps
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Discord NaN. Mon site.
Discord NaN. Mon site.
Discord NaN. Mon site.