Bonsoir, je développe une application C++ pour un projet universitaire et je me retrouve face à cette erreur:
LNK2005
"class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Vecteur2D const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVVecteur2D@@@Z) already defined in Fonctions.objE:\TFAC\IngenieurieLog\Solution_Projet\Projet\Point.obj
qui se reproduit aussi ici E:\TFAC\IngenieurieLog\Solution_Projet\Projet\Projet.obj
Je comprends l'erreur, j'ai lu pas mal de forum sur le sujet avant de poster ici mais je ne sais ni pourquoi elle est là, ni comment la réglée, ni où elle est exactement ...
Je peux fournir le code si nécessaire.
Merci d'avance pour vos réponses
- Edité par AlexisPouillaude 2 janvier 2020 à 16:20:02
En écrivant cette erreur en français, ça donne : - lors de la compilation du fichier Fonction.cpp, la définition de la fonction std::ostream& operator<<( std::ostream&, Vecteur2D const& ) a été vue. - lors de la compilation du fichier Point.cpp, encore une fois une définition de std::ostream& operator<<( std::ostream&, Vecteur2D const& ) a été vue. - lors de la compilation du fichier Projet.cpp, encore une fois une définition de std::ostream& operator<<( std::ostream&, Vecteur2D const& ) a été vue. On ne doit définir une fonction qu'une seule fois, il y a bien trop de définition!
N'aurais-tu pas mis cette définition dans un fichier header? Tu as compris l'erreur, je comprends ton hésitation, il existe plusieurs moyens de corriger cette erreur. Par exemple, on pourrait mettre la définition dans le fichier Vecteur2D.cpp, on peut aussi faire que la fonction soit déclarée inlineainsi elle pourrait être vue aussi souvent qu'elle est utilisée.
Merci beaucoup pour votre réponse, effectivement il manquait le mot clé inline à ma définition de fonction. Bonne soirée 😁
LNK2005 déjà défini
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
En recherche d'emploi.