出现以下错误的解决方案:
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj) nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj) Release/Demo.exe : fatal error LNK1169: one or more multiply defined symbols found
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj) nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj) Release/Demo.exe : fatal error LNK1169: one or more multiply defined symbols found
解决方案
解决该问题有两种方法:第一种解决方案涉及到强制链接程序按照正确的顺序链接库。第二种解决方案是让您查找导致问题的模块并纠正它。
解决方案一:强制链接程序按照正确的顺序链接库
1. 在“生成”菜单上,单击“设置”。
2. 在“项目设置”对话框的“以下项目的设置”视图中,单击以选中出现链接错误的项目配置。
3. 在“链接”选项卡上,单击以选中“类别”组合框中的“INPUT”。
4. 在“要忽略的库”中,插入库名(例如,Nafxcwd.lib;Libcmtd.lib)。
注意:等效的链接程序命令行是:/NODlibrary name>。
5. 在“对象/库模块”框中,插入库名。必须确保这些库按顺序列出,且作为命令行中的前两个库(例如,Nafxcwd.lib 和 Libcmtd.lib)列出。