Problem mit Single-Threaded Libaray und Visual C++ 2005

24/11/2007 - 14:16 von matrium | Report spam
Hallo,

ich habe von einer Firma die vorgabe bekommen, eine Library zu nutzen. Das
Problem: die Lib ist mit Visual C++ 2003 und Single-Threaded Runtime Libaray
gebaut. Wenn ich jetzt versuche in meinem Projekt auf die push_back Methode
der std::list zugreifen möchte, sagt mir der Linker:
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) ist
bereits in gfx.lib(gfx.obj) definiert.
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: char const * __thiscall
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> >::c_str(void)const "
(?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) ist bereits in gfx.lib(gfx.obj) definiert.

Gibt es eine Möglichkeit das Problem zu lösen, ohne dass ich mir Visual C++
2003 besorgen muss? Blacklisten der msvcprtd.lib hilft leider nicht, da mir
dann andere Symbole fehlen.

Mfg

Fabian
 

Lesen sie die antworten

#1 Jochen Kalmbach [MVP]
24/11/2007 - 14:40 | Warnen spam
Hallo matrium!

ich habe von einer Firma die vorgabe bekommen, eine Library zu nutzen. Das
Problem: die Lib ist mit Visual C++ 2003 und Single-Threaded Runtime Libaray
gebaut. Wenn ich jetzt versuche in meinem Projekt auf die push_back Methode
der std::list zugreifen möchte, sagt mir der Linker:



LIBs, welche die CRT/STL/MFC oder ATL verwenden, *müssen* mit genau dem
gleichen Compiler erstellt werden, wo sie auch spàter eingebunden werden!

Gibt es eine Möglichkeit das Problem zu lösen, ohne dass ich mir Visual C++
2003 besorgen muss?



Nein, gibt es nicht.

Greetings
Jochen

My blog about Win32 and .NET
http://blog.kalmbachnet.de/

Ähnliche fragen