在 Visual C++ 中以错误的顺序链接 CRT 库和 MFC 库时出现 LNK2005 错误

来源:互联网 发布:淘宝联盟的佣金在哪里 编辑:程序博客网 时间:2024/03/29 22:30

原因

CRT 库对 newdelete 和 DllMain 函数使用弱外部链接。MFC 库也包含 newdelete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。 

解决方案:强制链接器按照正确的顺序链接库

微软提供了两种解决方案,第2种我没有看懂,第1种我用了,简单搞定(我下面的说法可能更接近中国人的习惯):

选择:菜单“项目”-->“设置”->链接-->Input。
在第一行“对象/库模块”中最前面输入Nafxcwd.lib;Libcmtd.lib
在第二行“忽略库”框中,输入Nafxcwd.lib;Libcmtd.lib。
确定,重新链接,通过!

http://support.microsoft.com/?scid=kb;zh-cn;148652&spid=2990