VC6.0以及VS2005下 连接错误operator delete(void *)

Deadly 提交于 2020-03-01 06:08:29

VC6.0以及VS2005下 连接错误operator delete(void *)” (??3@YAXPAX@Z) already defined in LIBCMTD.lib(dbgdel.obj)的解决方法
2013年10月13日 ? 综合 ? 共 829字    ? 字号 小 中 大 ? 评论关闭

VC6.0 下对于该问题的解决方法

昨天写了个小小的TCP的客服端负责接收数据并打印,在本机上写好后,测试也没问题但是放在另外一个PC上运行报告找不到一个lib库,后来就将程序改成了 using MFC Class Static library 模式 但是连接报告了这个错误 operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib(dbgdel.obj) 当时真让人抓狂,根据网上搜索的信息,说是MFC自身lib 中也定义了new delete 操作 和CRUNTIME lib 中起冲突了,需要调整他们之间的顺序,后来参看msdn 文章【http://support.microsoft.com/default.aspx?scid=kb;en-us;148652】具体做法是 在项目属性中 选择 link 标签,选中 input 选项 在Object/library modules 上输入nafxcwd.lib libcmtd.lib Ignore libraries 输入nafxcwd.lib libcmtd.lib 重新编译就可以了 具体如图所示

修改项目了link选项

VS2005下问题解决方法

当时程序最初是在VS下写的后来将写好的程序放在别的电脑上出现缺少相应lib库,后来就将MFC Class Link 方式改成了 Static 方式

但是重新编译就开始报告了和后来在VC6.0下相同的错误,搜索了相应的网页发现,有些人提出的解决方法和VC6.0下一样,但是 按照那种方式修改不行,后来在继续查找在一个BBS上看到一个帖子,他的问题和我相似,都是编译release版本 没有问题,但是编译debug就不行

根据那个bbs上的帖子讲述进行如何修改

2.在preprocessor definitions中添加_AFXDLL
  
3.project options中,将/MTd改成/MDd(我的run-time library一律为Debug Multith
readed DLL)原来是/MTd

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!