Bonjour à tous,

Je me retrouve face à un problème qui me dépasse et qui est légèrement différent des autres erreurs de link2005 que j'ai trouvé en cherchant sur ce forum.

Je suis en train de concevoir un petit importer SIG qui ne compile plus quand je veut utiliser une classe pressente dans un autre projet (ImporterManager).

Si je compile mon projet ImporterSIG sans utiliser l'importerManager, je n'obtiens pas d'erreur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
3>ImportGIS - 0 error(s), 0 warning(s)
Si je rajoute l'importerManager, je me retrouve donc avec des erreurs LNK2005.

Pseudo Code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
void GISImporter::Import(const std::string& fileName  )
{
 
ImporterManager testimport;
}
Erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
>Compiling...
1>GISImporter.cpp
1>Linking...
1>stk.lib(stk.dll) : error LNK2005: "public: unsigned int __thiscall std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::size(void)const " (?size@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QBEIXZ) already defined in GISImporter.obj
1>stk.lib(stk.dll) : error LNK2005: "public: __thiscall std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(void)" (??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@XZ) already defined in GISImporter.obj
1>stk.lib(stk.dll) : error LNK2005: "public: __thiscall std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > const &)" (??0?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@QAE@ABV01@@Z) already defined in GISImporter.obj
1>stk.lib(stk.dll) : error LNK2005: "public: __thiscall std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::~vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >(void)" (??1?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ) already defined in GISImporter.obj
1>stk.lib(stk.dll) : error LNK2005: "public: __thiscall std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >(void)" (??0?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAE@XZ) already defined in GISImporter.obj
1>stk.lib(stk.dll) : error LNK2005: "public: void __thiscall std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::push_back(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?push_back@?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z) already defined in GISImporter.obj
Stk est un autre projet ou des outils de basses et la stl sont définis. Ce projet est normalement correct.

Ce que je ne comprend pas, c'est comment je peut redéfinir des fonctions dans mon ImporterGIS :
alors qu'il compile quand je n'utilise pas ImporterManager
que la DLL contenant ImporterManager compile correctement

Voila, je suis donc perdu.
Si quelqu'un a réussi à comprendre mon problème et peut m'expliquer ce que je n'ai manifestement pas compris, je lui en serait très reconnaissant.