already defined in LIBCMTD.lib(new.obj) nafxcwd.lib .
来源:互联网 发布:linux延时命令 sleep 编辑:程序博客网 时间:2024/06/08 09:27
最近在VC 6.0编程,有几个地方都遇到一个十分恼人的错误。就是出现下述的错误: Linking... nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMTD.lib(new.obj) nafxcwd.lib(afxmem.obj) :
error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib(dbgdel.obj) Debug/DCap.exe :
fatal error LNK1169: one or more multiply defined symbols found
这样的错误,明显就是两个被link到的library都提供了同名的函式。但直接ignore掉LIBCMTD.lib当然是不行的,因为它是C的library。之所以发生这个问题,是因为MFC的library和C的library相冲突,必须设定它们被link的顺序,也就是先nafxcwd.lib再LIBCMTD.lib。但是这二者都是default libraries,所以要怎么设定它们的顺序呢?我找到一个解法其实挺tricky的:先把它们分别都ignore掉,再额外将它们加入。
方法:
Project -> settings 在弹出的对话框中选择link 标签页; 然后在 link 标签页的Category处的下拉菜单中选中input选项;在Link页签上的Ignore Libraries输入:nafxcwd.lib libcmtd.lib,再到同一页签的Object/library modules输入:nafxcwd.lib libcmtd.lib。再点击OK按钮就行了,这么一来,加入它们的顺序就成了我们所强迫设定的顺序了。
- already defined in LIBCMTD.lib(new.obj) nafxcwd.lib
- already defined in LIBCMTD.lib(new.obj) nafxcwd.lib
- already defined in LIBCMTD.lib(new.obj) nafxcwd.lib .
- already defined in LIBCMTD.lib(new.obj)
- nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" already defined in LIBCMTD.lib(new.obj)
- nafxcwd.lib(afxmem.obj) : "void * __cdecl operator new(unsigned int)" already defined in LIBCMT.lib
- “void * __cdecl operator new(unsigned int)”(??2@YAPAXI@Z) already defined in LIBCMTD.lib(new.obj)
- Already defined in LIBCMTD.lib
- Visual Studio Tips: error LNK2005: ... already defined in LIBCMTD.lib(new.obj)
- 【error】LNK2005: already defined in LIBCMTD.lib(typinfo.obj)
- error LNK2005: _atoi already defined in libcmtd.lib(atox.obj)
- __call_reportfault already defined in libcmtd.lib(invarg.obj)
- LNK2005: _DllMain@12 already defined in LIBCMTD.lib(dllmain.obj)
- error LNK2005: __vsnwprintf already defined in libcmtd.lib(vsnwprnt.obj)
- LNK2005 __CRT_RTC_INIT already defined in LIBCMTD.lib(_init_.obj)
- VC6错误:libcmtd.lib(ccccc.obj) :error lnk2005:xxxx already defined in libcd.lib(ccccc.obj)
- LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount already defined in MSVCRTD.lib(MSVCR90D
- msvcrtd.lib(MSVCRTD.dll) : error LNK2005: __setmbcp already defined in libcmtd.lib(mbctype.obj)
- WatchKit入门:创建一个简单的猜数游戏
- access sql 从一个表查询插入到另一个表
- PHP入门-安装配置小结
- iOS开发相关资源
- 思考我的人生
- already defined in LIBCMTD.lib(new.obj) nafxcwd.lib .
- Eclipse 快键
- Nginx.conf配置文件解析
- No Cortex-M Device found in JTAG chain.的解决
- mybatis与spring整合报错Error creating bean with name 'sqlSessionFactory' defined in class path resource
- 使用SQL语句直接保存图片
- Swift社交应用文本输入优化汇总
- char(1)和varchar(1)的区别
- 论述rfid与物联网关系