Was mache ich wenn eine Lib bereits gelinkt wurden ist
-
abcschützling
- Beiträge: 24
- Registriert: 27. Oktober 2009 22:37
Was mache ich wenn eine Lib bereits gelinkt wurden ist
Hallo,
ich bekomme ständig folgende Fehlermeldung.
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string,class std::allocator >::~basic_string,class std::allocator >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) bereits in ltilib7_dwin32.lib(ltiMatrix.obj) definiert
Vielleicht weiß ja jemand, wie man diese Fehlermelung unter Visual Studio 2003 weg bekommt.
Gruß
ich bekomme ständig folgende Fehlermeldung.
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string,class std::allocator >::~basic_string,class std::allocator >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) bereits in ltilib7_dwin32.lib(ltiMatrix.obj) definiert
Vielleicht weiß ja jemand, wie man diese Fehlermelung unter Visual Studio 2003 weg bekommt.
Gruß
-
abcschützling
- Beiträge: 24
- Registriert: 27. Oktober 2009 22:37
Ich habe jetzt durch /FORCE:MULTIPLE die Fehlermeldung auf warnings gestellt. Das funktoniert auch !
ibcpmtd.lib(xmutex.obj) : warning LNK4006: '"public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ)' bereits in 'main.obj' definiert; zweite Definition wird ignoriert
Ich möchte aber jetzt aber, dass beide Definitionen gelinkt werden.
Weiß das zufällig jemand ?
Gruß
ibcpmtd.lib(xmutex.obj) : warning LNK4006: '"public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ)' bereits in 'main.obj' definiert; zweite Definition wird ignoriert
Ich möchte aber jetzt aber, dass beide Definitionen gelinkt werden.
Weiß das zufällig jemand ?
Gruß
Beide definitionen geht ned .... es kann nur eine Impl fuer ein Symbol geben !ch möchte aber jetzt aber, dass beide Definitionen gelinkt werden.
std::_Mutex ??? Das ist gcc mit ner "neuen" erweiterung ? Wer sonst traut sich im std:: eigene Objecte anzulegen
aber der gcc kann doch keine .libs linken ?
Wo bekommst du den mutex im std:: her ?
Was ist das fuer eine STL impl ?
Also im ersten Post iss definitiv visual studio ...
aber die Meldung im 2ten Post, das kann ned visual studio sein oder ?
Ich nehm an, du hasst irgendwo einstellungen die noch eine andere version der c++ lib (cpmtd.lib, aber die standard c++ lib linkt man doch in VS ned mit -L zu ... ? ) erfordert. und wenn er gegen beide linken will bekommt er die doppelten symbole, da ja beide libs das selbe implementieren.
Ciao ...
-
abcschützling
- Beiträge: 24
- Registriert: 27. Oktober 2009 22:37
der gcc kann doch keine .libs linken ?
Ne, das geht nicht. Gegenfrage, warum ?
Also, ich versuche QT mit einem zweiten Framework (LTILib) zu Linken. Beide Frameworks benutzen Komponenten aus dem gtk.Was ist das fuer eine STL impl ?
Also im ersten Post iss definitiv visual studio ...
aber die Meldung im 2ten Post, das kann ned visual studio sein oder ?
Es ist ein warning von Visual Studio. Zumindest zeig es Visual Studio an.
VS (der compiler) und der gcc nutzen (geringfuegig) unterschiedliche Formate von libs (libs sind nix anderes als mehrere compilierte obj dateien, nur der container unterscheidet sich, der gcc verwendet das linux archiv format). die haben normal auch andere endungen. .lib = statische lib fuer VS, Intel .... .a = statische lib fuer gcc. Also normalerweise. Kann der gcc nun auch libs ?Ne, das geht nicht. Gegenfrage, warum ?
Du meinst QT verwendet Teile aus dem gtk ? Oder meinst deine App ?Also, ich versuche QT mit einem zweiten Framework (LTILib) zu Linken. Beide Frameworks benutzen Komponenten aus dem gtk.
Aber eher unrelevant.
Was mich nur wundert, ist das es irgendwo in namespace std (eigentlich der von der stl) nen mutex gibt. Normal duerfte es das nicht (verletzung gegen die verhaltenszusicherungen des STL standards) oder es ist eine ganz neue Impl (im neuen standard kommt ja MT untertuetzung).
Aber das auch nur am Rande ....
wichtig ist, deine Lib gegen die du auch linken willst (LTILib) ist hoechstwahrscheinlich mit anderen compilerflags (multithread, multithreaded dll, multithreaded debug, multithreaded dll debug ... ) uebersetzt. Das heisst deine App will gegen eine c++ lib linken und deine auch zugelinkte lib erfordert eine andere c++ lib die genau das selbe implementiert -> konflikt
gib mal bei den linkeroptionen (Befehlzeile) zusaetzlich /VERBOSE:LIB
an. und schaau dir die meldungen an, bzw poste die hier mal. Da erkennst, welche runtime deine zugelinkte lib haben will
Kann es sein, dass deine Anwendung im debug modus uebersettzt wird, die LTILib du aber nur im release hasst, bzw dagegen linkst ....
bringt die LTLib eine debug lib mit, wenn ja link die mal gegen deine debug version .....
http://support.microsoft.com/kb/154753
Ciao ...
-
abcschützling
- Beiträge: 24
- Registriert: 27. Oktober 2009 22:37
gib mal bei den linkeroptionen (Befehlzeile) zusaetzlich /VERBOSE:LIB
an. und schaau dir die meldungen an, bzw poste die hier mal.
Code: Alles auswählen
Bibliotheken werden durchsucht
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\odbc32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\odbccp32.lib:
Durchsuchen von ../../../win/lib\ws2_32.lib:
Durchsuchen von ../../../win/lib\psapi.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\pdh.lib:
Durchsuchen von ../../../win/lib\glib-1.3.lib:
Durchsuchen von ../../../win/lib\gdk-1.3.lib:
Durchsuchen von ../../../win/lib\gtk-1.3.lib:
Durchsuchen von ../../../win/lib\gmodule-1.3.lib:
Durchsuchen von ../../../win/lib\gthread-1.3.lib:
Durchsuchen von ../../../lib/\ltilib7_dwin32.lib:
Durchsuchen von c:\Qt\4.5.2\lib\qtmaind.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtScriptd4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtXmld4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtGuid4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtCored4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtUiToolsd.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\kernel32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\user32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\gdi32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\winspool.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\comdlg32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\advapi32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\shell32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\ole32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\oleaut32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\uuid.lib:
Durchsuchen von \LTILib_VC2003\win\lib\glib-1.3.lib:
Durchsuchen von \LTILib_VC2003\win\lib\gdk-1.3.lib:
Durchsuchen von \LTILib_VC2003\win\lib\gtk-1.3.lib:
Durchsuchen von \LTILib_VC2003\win\lib\gmodule-1.3.lib:
Durchsuchen von \LTILib_VC2003\win\lib\gthread-1.3.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\libcpd.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\LIBCD.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\OLDNAMES.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\libcpmtd.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\LIBCMTD.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\msvcprtd.lib:
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: __thiscall std::basic_string,class std::allocator >::~basic_string,class std::allocator >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)' bereits in 'main.obj' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: class std::basic_string,class std::allocator > & __thiscall std::basic_string,class std::allocator >::operator+=(class std::basic_string,class std::allocator > const &)" (??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z)' bereits in 'ltilib7_dwin32.lib(ltiIoHandler.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: __thiscall std::basic_string,class std::allocator >::basic_string,class std::allocator >(class std::basic_string,class std::allocator > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z)' bereits in 'ltilib7_dwin32.lib(ltiException.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: __thiscall std::basic_string,class std::allocator >::basic_string,class std::allocator >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z)' bereits in 'main.obj' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: __thiscall std::basic_string,class std::allocator >::basic_string,class std::allocator >(unsigned int,char)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z)' bereits in 'ltilib7_dwin32.lib(ltiBMPFunctor.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: class std::basic_string,class std::allocator > & __thiscall std::basic_string,class std::allocator >::operator+=(char const *)" (??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z)' bereits in 'ltilib7_dwin32.lib(ltiIoHandler.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: int __thiscall std::ios_base::width(int)" (?width@ios_base@std@@QAEHH@Z)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: void __thiscall std::basic_ios >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: class std::basic_string,class std::allocator > & __thiscall std::basic_string,class std::allocator >::append(unsigned int,char)" (?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: bool __thiscall std::ctype::is(short,char)const " (?is@?$ctype@D@std@@QBE_NFD@Z)' bereits in 'ltilib7_dwin32.lib(ltiBMPFunctor.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: static char __cdecl std::char_traits::to_char_type(int const &)" (?to_char_type@?$char_traits@D@std@@SADABH@Z)' bereits in 'ltilib7_dwin32.lib(ltiBMPFunctor.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: static bool __cdecl std::char_traits::eq_int_type(int const &,int const &)" (?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: static int __cdecl std::char_traits::eof(void)" (?eof@?$char_traits@D@std@@SAHXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: int __thiscall std::basic_streambuf >::snextc(void)" (?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ)' bereits in 'ltilib7_dwin32.lib(ltiBMPFunctor.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: int __thiscall std::basic_streambuf >::sgetc(void)" (?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ)' bereits in 'ltilib7_dwin32.lib(ltiBMPFunctor.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: class std::basic_streambuf > * __thiscall std::basic_ios >::rdbuf(void)const " (?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: unsigned int __thiscall std::basic_string,class std::allocator >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ)' bereits in 'main.obj' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: int __thiscall std::ios_base::width(void)const " (?width@ios_base@std@@QBEHXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: class std::basic_string,class std::allocator > & __thiscall std::basic_string,class std::allocator >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z)' bereits in 'main.obj' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: __thiscall std::locale::~locale(void)" (??1locale@std@@QAE@XZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: class std::locale __thiscall std::ios_base::getloc(void)const " (?getloc@ios_base@std@@QBE?AVlocale@2@XZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: bool __thiscall std::basic_istream >::_Ipfx(bool)" (?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z)' bereits in 'ltilib7_dwin32.lib(ltiBMPFunctor.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: void __thiscall std::basic_streambuf >::_Unlock(void)" (?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: void __thiscall std::basic_streambuf >::_Lock(void)" (?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ)' bereits in 'libcpd.lib(cerr.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: void __thiscall std::locale::facet::_Register(void)" (?_Register@facet@locale@std@@QAEXXZ)' bereits in 'libcpd.lib(locale0.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: void __thiscall std::locale::facet::_Incref(void)" (?_Incref@facet@locale@std@@QAEXXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: static unsigned int __cdecl std::ctype::_Getcat(class std::locale::facet const * *)" (?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)' bereits in 'ltilib7_dwin32.lib(ltiBMPFunctor.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: class std::locale::facet const * __thiscall std::locale::_Getfacet(unsigned int)const " (?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z)' bereits in 'libcpd.lib(locale0.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: __thiscall std::locale::id::operator unsigned int(void)" (??Bid@locale@std@@QAEIXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z)' bereits in 'libcpd.lib(cerr.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: char __thiscall std::basic_ios >::widen(char)const " (?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z)' bereits in 'ltilib7_dwin32.lib(ltiBMPFunctor.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: unsigned int __thiscall std::basic_string,class std::allocator >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ)' bereits in 'main.obj' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: int __thiscall std::basic_streambuf >::sbumpc(void)" (?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ)' bereits in 'ltilib7_dwin32.lib(ltiBMPFunctor.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: static int __cdecl std::char_traits::to_int_type(char const &)" (?to_int_type@?$char_traits@D@std@@SAHABD@Z)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: int __thiscall std::basic_streambuf >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: char __thiscall std::basic_ios >::fill(void)const " (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: int __thiscall std::ios_base::flags(void)const " (?flags@ios_base@std@@QBEHXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: class std::basic_ostream > & __thiscall std::basic_ostream >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: class std::basic_ostream > * __thiscall std::basic_ios >::tie(void)const " (?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: bool __thiscall std::ios_base::good(void)const " (?good@ios_base@std@@QBE_NXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"public: void __thiscall std::basic_ostream >::_Osfx(void)" (?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ)' bereits in 'ltilib7_dwin32.lib(ltiVector.obj)' definiert; zweite Definition wird ignoriert
msvcprtd.lib(MSVCP71D.dll) : warning LNK4006: '"bool __cdecl std::uncaught_exception(void)" (?uncaught_exception@std@@YA_NXZ)' bereits in 'libcpd.lib(uncaught.obj)' definiert; zweite Definition wird ignoriert
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\MSVCRTD.lib:
MSVCRTD.lib(MSVCR71D.dll) : warning LNK4006: '"public: __thiscall bad_cast::bad_cast(char const *)" (??0bad_cast@@QAE@PBD@Z)' bereits in 'LIBCD.lib(stdexcpt.obj)' definiert; zweite Definition wird ignoriert
MSVCRTD.lib(ti_inst.obj) : warning LNK4006: '"private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z)' bereits in 'LIBCD.lib(typinfo.obj)' definiert; zweite Definition wird ignoriert
MSVCRTD.lib(ti_inst.obj) : warning LNK4006: '"private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z)' bereits in 'LIBCD.lib(typinfo.obj)' definiert; zweite Definition wird ignoriert
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\odbc32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\odbccp32.lib:
Durchsuchen von ../../../win/lib\ws2_32.lib:
Durchsuchen von ../../../win/lib\psapi.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\pdh.lib:
Durchsuchen von ../../../win/lib\glib-1.3.lib:
Durchsuchen von ../../../win/lib\gdk-1.3.lib:
Durchsuchen von ../../../win/lib\gtk-1.3.lib:
Durchsuchen von ../../../win/lib\gmodule-1.3.lib:
Durchsuchen von ../../../win/lib\gthread-1.3.lib:
Durchsuchen von ../../../lib/\ltilib7_dwin32.lib:
Durchsuchen von c:\Qt\4.5.2\lib\qtmaind.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtScriptd4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtXmld4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtGuid4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtCored4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtUiToolsd.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\kernel32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\user32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\gdi32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\winspool.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\comdlg32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\advapi32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\shell32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\ole32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\oleaut32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\uuid.lib:
Durchsuchen von \LTILib_VC2003\win\lib\glib-1.3.lib:
Durchsuchen von \LTILib_VC2003\win\lib\gdk-1.3.lib:
Durchsuchen von \LTILib_VC2003\win\lib\gtk-1.3.lib:
Durchsuchen von \LTILib_VC2003\win\lib\gmodule-1.3.lib:
Durchsuchen von \LTILib_VC2003\win\lib\gthread-1.3.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\libcpd.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\LIBCD.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\OLDNAMES.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\libcpmtd.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\LIBCMTD.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\msvcprtd.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\MSVCRTD.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\odbc32.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\odbccp32.lib:
Durchsuchen von ../../../win/lib\ws2_32.lib:
Durchsuchen von ../../../
win/lib\psapi.lib:
Durchsuchen von c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\pdh.lib:
Durchsuchen von ../../../win/lib\glib-1.3.lib:
Durchsuchen von ../../../win/lib\gdk-1.3.lib:
Durchsuchen von ../../../win/lib\gtk-1.3.lib:
Durchsuchen von ../../../win/lib\gmodule-1.3.lib:
Durchsuchen von ../../../win/lib\gthread-1.3.lib:
Durchsuchen von ../../../lib/\ltilib7_dwin32.lib:
Durchsuchen von c:\Qt\4.5.2\lib\qtmaind.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtScriptd4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtXmld4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtGuid4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtCored4.lib:
Durchsuchen von c:\Qt\4.5.2\lib\QtUiToolsd.lib:
Durchsuchen der Bibliotheken abgeschlossen
LINK : warning LNK4098: Standardbibliothek 'LIBCMTD' steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden
LINK : warning LNK4098: Standardbibliothek 'MSVCRTD' steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden
Gruß
-
abcschützling
- Beiträge: 24
- Registriert: 27. Oktober 2009 22:37
Ich glaube da gibt es eine debug version. Zumindest gibt es einen Ordner "obj", in dem ein anderer Ordener "WIN32 Debug" vorhanden ist. Aber wie link ich den denn jetzt gegen meine debug version.Kann es sein, dass deine Anwendung im debug modus uebersettzt wird, die LTILib du aber nur im release hasst, bzw dagegen linkst ....
bringt die LTLib eine debug lib mit, wenn ja link die mal gegen deine debug version .....
DU hasst doch visual studio als IDE oder ?
bei den projecteinstellungen machst du doch einstellungen fuer deine "Konfiguration"
Konfigurationen sind varianten fuer Compiler / Linker einstellungen.
VS legt dir normal bei jedem neuen Project eine fuer Debug und eine fuer release an ....
Bei Project / Eigenschaften für Project kannst die Pflegen, und da gibts eine Combobox wo deine Konfiguration auswaehlen kannst ...
Standardmaessig iss immer Debug ausgewaehlt also uebersetzt auch immer die Debug version.
Fuer debug und release kannst aber getrennte einstellungen machen, also auch bei release die lib und bei debug die andere lib linken ...
Ciao ...
bei den projecteinstellungen machst du doch einstellungen fuer deine "Konfiguration"
Konfigurationen sind varianten fuer Compiler / Linker einstellungen.
VS legt dir normal bei jedem neuen Project eine fuer Debug und eine fuer release an ....
Bei Project / Eigenschaften für Project kannst die Pflegen, und da gibts eine Combobox wo deine Konfiguration auswaehlen kannst ...
Standardmaessig iss immer Debug ausgewaehlt also uebersetzt auch immer die Debug version.
Fuer debug und release kannst aber getrennte einstellungen machen, also auch bei release die lib und bei debug die andere lib linken ...
Ciao ...
-
abcschützling
- Beiträge: 24
- Registriert: 27. Oktober 2009 22:37
-
abcschützling
- Beiträge: 24
- Registriert: 27. Oktober 2009 22:37
ich verstehe das nicht so ganz, ich habe mir jetzt eine release und eine debug version erstellt. Wenn ich aber jetzt die debug version mit nur einer lib linke (z.B. nur die QT lib), gibt es den folgenden Fehler:Fuer debug und release kannst aber getrennte einstellungen machen, also auch bei release die lib und bei debug die andere lib linken ...
error LNK2001: Nichtaufgelöstes externes Symbol "bool __cdecl lti::read(class lti::ioHandler &,float &)" (?read@lti@@YA_NAAVioHandler@1@AAM@Z) ...etc.
Er schmeißt mir den Fehler, weil er natürlich bestimmte Codeteile jetzt nicht kennt. Weil rer ja eben die eine Lib nicht kennt und die benötigten headers nicht einbinden kann. Das selbe is es bei der release version ohne die QT teile.
ich stehe jetzt einbisschen auf den Schlauch, was soll ich machen ?
Gruß
-
abcschützling
- Beiträge: 24
- Registriert: 27. Oktober 2009 22:37
Gibt es evtl. bestimmte linker direktiven, um nur stimmte Libs mit den jeweiligen Obj-Dateien zu verlinken ? z.B. Pragma Direktiven oder so was ähnliches...
Gruß
Gruß
Zuletzt geändert von abcschützling am 25. März 2010 21:40, insgesamt 1-mal geändert.
-
Curtis Newton
- Beiträge: 122
- Registriert: 11. Juni 2008 18:39
Diese Frage ist ... naja, zeigt das dir das Verstaendniss vom linken noch bissi fehlt. Vielleicht iss nen etwas tiefergehendes tutorial zum compilieren und linken mal gar ned so verkehrt.um nur stimmte Libs mit den jeweiligen Cpp-Dateien zu verlinken ?
mal mit dem gcc und dem linker nen binary haendisch zusammenbauen und nicht so einmal Klick tools verwenden kann durchaus recht hilfreich sein.
Ciao ...