Bonjour,
J'ai une solution en développement qui se compose d'une librairie statique et d'un exécutable. La librairie statique compile bien toute seule. Quand l'exécutable est compilé, pas d'erreur jusqu'à l'étape d'éditions des liens où plusieurs message du type suivant apparaissent :
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) déjà défini(e) dans libelementaire.lib(C_Calendar.obj)
et surtout :
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) déjà défini(e) dans MSVCRTD.lib(MSVCR80D.dll)
Le compilateur indique donc que plusieurs symboles serait définis plusieurs fois dans le programme mais comme pour certains, il s'agit de symboles génériques type operator new ou delete, je pense que l'erreur provient soit :
- d'un problème de config de projets ;
- d'un include multiple d'un même fichier de base stdafx.h ou autre.
Pour ce qui est de savoir si ça vient d'un pb de config de projets, j'ai essayé de reproduire le pb en montant un projet identique (mais pas avec les mêmes fichiers sources) mais là pas d'erreur ce qui me laisse penser que l'erreur ne vient pas de là mais si cette expérience me semble insuffisante pour éliminer totalement cette hypothèse...
Alors qui a une idée ?