Link2005错误解决方法
来源:互联网 发布:java list 多元素排序 编辑:程序博客网 时间:2024/04/28 22:58
Link2005错误解决方法
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) 中定义
此错误出现原因是C(CRT)库与MFC库链接顺序不正确导致
原因:CRT 库对 new、delete 等一些函数使用弱外部链接。MFC 库也包含 new、delete 等相同的 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。若是顺序相反,则出现重定义的错误。
解决方法有两种:一种是在项目设置中对库的链接进行忽略设置,强制链接器按正确顺序执行,具体如下:
VC++6.0: [Project]->[Setting]:选中项目Debug还是Release->[Link]->[Category]:Input->在Object/library modules中添加:Nafxcwd.lib Libcmtd.lib,然后再Ignore libraries也添加:Nafxcwd.lib Libcmtd.lib。然后重新编译,OK!
另一种方法:找出链接顺序错误的地方,改正链接顺序即可,可使用如下方法查看:
要查看当前的库链接顺序,请按照下列步骤操作:
- 在“Project”菜单上,单击“Setting”。
- 选中Link选项卡,在“项目选项”框中键入 /verbose:lib
- 重新生成项目。在链接过程中,这些库将在输出窗口中列出。
- 然后可以查看链接库的顺序了
- Link2005错误解决方法
- link2005错误
- 错误link2005
- LINK2005错误
- link2005 错误
- LINK2005错误
- 解决Link2005错误
- VC:LINK2005错误原理-
- link2005链接错误
- 连接重复错误LINK2005
- VC++的链接错误LINK2005
- 供自己参考link2005错误
- link2005错误 .obj重定义
- link2005
- LINK2005
- 编译器常见错误及Link2005错误原因
- error link2005问题原因与解决方法
- LINK2005"符号已定义"的链接错误
- 二月工作总结
- log4j.properties 路径问题
- Js代码大全
- 黑马程序员_面试题(2) 银行业务调度系统
- Trampoline操作系统(一)
- Link2005错误解决方法
- DB2如何检索数据库中第100到200条数据
- 各种链接
- linux读properties文件
- 设计模式之单例模式 (Design patterns of the The singleton pattern)c#
- 在Eclipse中使用JSLint保证JavaScript代码质量
- eval
- Oracle数据文件收缩
- log4j.properties配置文件