VC编译错误:一个或多个多重定义的符号
2015-07-09 18:39
381 查看
1>uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义
1>uafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMT.lib(delete.obj) 中定义
1>uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 LIBCMT.lib(new2.obj) 中定义
1>../bin\TLLogger_Unicode_Release.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
原因:
CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。
当 C 运行时 (CRT) 库和 Microsoft 基础类 (MFC) 库的链接顺序有误时,可能会出现以下 LNK2005 错误。
解决方法:
强制链接器按照正确的顺序链接库!
project->properties->Linker->Ignore Specific Library(忽略特定默认库) 添加 uafxcwd.lib Libcmtd.lib
在Additional Dependencied(附加依赖项)添加uafxcwd.lib Libcmtd.lib
1>uafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMT.lib(delete.obj) 中定义
1>uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 LIBCMT.lib(new2.obj) 中定义
1>../bin\TLLogger_Unicode_Release.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
原因:
CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。
当 C 运行时 (CRT) 库和 Microsoft 基础类 (MFC) 库的链接顺序有误时,可能会出现以下 LNK2005 错误。
解决方法:
强制链接器按照正确的顺序链接库!
project->properties->Linker->Ignore Specific Library(忽略特定默认库) 添加 uafxcwd.lib Libcmtd.lib
在Additional Dependencied(附加依赖项)添加uafxcwd.lib Libcmtd.lib
相关文章推荐
- POJ 1012:Joseph
- 深入理解DB2缓冲池(BufferPool)
- PathRemoveFileSpec
- Android中Service的简单使用
- 工作日志2014-07-02
- Android控制输入法
- css 实现6宫格图标
- mysql拷贝表的几种方式
- TOJ 4108 Hearthstone
- eclipse查看jar源码
- dubbo——管理员指南
- push is not a function
- MongoDB数据库导出导入迁移
- tar命令解压时如何去除目录结构及其解压到指定目录
- c++filt看函数名
- 利用IShellExecuteHook接口对程序监控
- Delphi XE5 安卓手机要求
- tomcat部署Web项目
- C++用纯虚函数实现协议委托的例子
- ubuntu下Android4.4源码导入eclipse