nafxcwd.lib与libcmtd.lib冲突解决办法

工程使用MTD编译时出现下列错误:

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) 中定义
Debug/MediateServer.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
我在网上搜了下nafxcwd.lib,找到了些有用的网页:http://support.microsoft.com/kb/148652/zh-cnhttp://blog.csdn.net/soloist/archive/2005/09/30/493238.aspx

最后得到问题是库链接的时候发生冲突了(libcmtd.lib和nafxcwd.lib发生冲突),可以强制制定链接顺序解决问题(先链接 nafxcwd.lib,后链接libcmtd.lib)。最后的解决办法是在工程属性的"连接器","输入", "附加依赖"里面输入"nafxcwd.lib",这样VC.NET编译时会先链接nafxcwd.lib,问题就解决了.(libcmtd.lib对应调试版多线程静态C标准库, msvcrtd.lib对应调试版本多线程动态C标准库,nafxcwd.lib对应MFC静态连接库)

附:经常在写VC程序时,由debug转换成release配置时容易产生此类问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值