Witam
W Code::Blocks(mingw) napisałem swoją bibliotekę, kiedy dołączam ją do innego projektu w C::B wszystko działa.
Problem pojawia się kiedy chcę ją dołączyć do projektu VC++. Plik .a skopiowałem do VC/lib, pliki .h do VC/include. W Linker/Include/Additional Dependencies dopisałem plik .a.
Podczas linkowania dostaję błędy:
Error 1 error LNK2019: unresolved external symbol "public: virtual __thiscall lnm::NCSettings::~NCSettings(void)" (??1NCSettings@lnm@@UAE@XZ) referenced in function _wmain test.obj test
Error 2 error LNK2019: unresolved external symbol "public: __thiscall lnm::NCSettings::NCSettings(void)" (??0NCSettings@lnm@@QAE@XZ) referenced in function _wmain test.obj test
Error 3 fatal error LNK1120: 2 unresolved externals C:\Users\sharkos\Documents\Visual Studio 2008\Projects\test\Debug\test.exe test
Czy moja biblioteka musi być skompilowana za pomocą VS aby z nim działała?
Edit:
Skompilowałem swoją bibliotekę za pomocą kompilatora MS VC++ (za pomocą C::B), mam swoja bibliotekę .lib dołączyłem ją do nowego projektu w VS i dostaję takie błędy:
Error 1 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) already defined in libnetmod.lib(NCSettings.obj) msvcprtd.lib test
Error 2 error LNK2005: "public: static unsigned int __cdecl std::char_traits<char>::length(char const *)" (?length@?$char_traits@D@std@@SAIPBD@Z) already defined in libnetmod.lib(NCSettings.obj) msvcprtd.lib test
Warning 3 warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library test test
Error 4 fatal error LNK1169: one or more multiply defined symbols found C:\Users\sharkos\Documents\Visual Studio 2008\Projects\test\Debug\test.exe test
Kompilacja programu korzystającego z mojej biblioteki za pomocą C::B z kompilatorem MS VC++ daje taki rezultat:
msvcprt.lib(MSVCP90.dll)||error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct d::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in main.obj|
msvcprt.lib(MSVCP90.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?
//CIACH - q