1234567891011121314151617181920212223242526272829 |
- 刚在试将程序从debug模式转到release模式,然后报错:
- nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义
- nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义
- nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 LIBCMTD.lib(new2.obj) 中定义
- nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 LIBCMTD.lib(delete2.obj) 中定义
- ##A
- 如果项目是多字节字符编码,在项目->属性->连接器->输入:
- Debug:
- 附加依赖项:nafxcwd.lib;libcmtd.lib
- 忽略指定库:nafxcwd.lib;libcmtd.lib
- Release:
- 附加依赖项:nafxcw.lib;libcmt.lib
- 忽略指定库:nafxcw.lib;libcmt.lib
- ##B
- 如果项目是UNICODE字符编码,在项目->属性->连接器->输入<注意库的顺序>:
- Debug:
- 附加依赖项:uafxcwd.lib;libcmtd.lib
- 忽略指定库:uafxcwd.lib;libcmtd.lib
- Release:
- 附加依赖项:uafxcw.lib;libcmt.lib
- 忽略指定库:uafxcw.lib;libcmt.lib
- 说明:
- 以上错误原因是由于这二个库有各自的new和delete,这是冲突的,需要指定顺序。正确加载库的顺序是Nafxcwd.lib Libcmtd.lib,而默认的是Libcmtd.lib Nafxcwd.lib。
- 所以就会报出上面的那个error。
|