这个链接器警告的含义是什么以及如何解决它?

时间:2015-03-04 15:45:41

标签: c++ visual-studio linker-errors

我在使用多个库的应用程序li​​ king期间收到此警告

warning LNK4049: locally defined symbol ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ (public: virtual __cdecl std::basic_ios<char,struct std::char_traits<char> >::~basic_ios<char,struct std::char_traits<char> >(void)) imported

这意味着什么以及我如何解决它?

1 个答案:

答案 0 :(得分:0)

这意味着你有一个在同一个DLL中用__declspec(dllexport)和__declspec(dllimport)定义的符号。换句话说,你告诉了链接器:

此符号在此DLL中定义,并且    此DLL中未定义此符号。

由于符号是basic_ios,因此它是C ++运行时库中的符号。您可能已经完成的工作是在一个地方指定运行时库是静态链接的,但是在另一个地方您指定了运行时库是动态链接的。

检查visual studio中的属性并确保它们一致。