我使用vs2017重新编译了corba mico
库,并尝试将其链接到我们的项目。
(之前在vs2012中一切都工作过)
并且已经检查了运行时库以便在整个地方设置为Multi-threaded DLL(/MD)
。
仍然无法解决one or more multiply defined symbols found
问题,也无法理解std::exception::what
如何进行多重定义。
2>strlib.lib(codecvt.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in mico2313.lib(mico2313.dll)
2>strlib.lib(time.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in mico2313.lib(mico2313.dll)
2>strlib.lib(date.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in mico2313.lib(mico2313.dll)
2>strlib.lib(timestamp.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in mico2313.lib(mico2313.dll)
2>MetaDataAccess.lib(MetadataInterfaceFactory.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in mico2313.lib(mico2313.dll)
2>MetaDataAccess.lib(MetadataInterfaceInternal.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in mico2313.lib(mico2313.dll)
2>MSVCRT.lib(throw_bad_alloc.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in mico2313.lib(mico2313.dll)
2>strlib.lib(filepathutilities.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in mico2313.lib(mico2313.dll)
2> Creating library D:\dev\GIT\SuperSTAR_Mega\superstar2\SuperCROSS\Super32\..\..\..\output\Win32\Release\MetaAccess.lib and object D:\dev\GIT\SuperSTAR_Mega\superstar2\SuperCROSS\Super32\..\..\..\output\Win32\Release\MetaAccess.exp
2>D:\dev\GIT\SuperSTAR_Mega\superstar2\SuperCROSS\Super32\..\..\..\output\Win32\Release\build\MetaAccess.dll : fatal error LNK1169: one or more multiply defined symbols found