环境:在非MFC程序(使用standard windows library)中,添加MFC支持,静态链接MFC库。

  发生以下错误:

uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj)
uafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete.obj)
uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in LIBCMT.lib(new2.obj)

  问题产生原因,CRT库和MFC库链接时顺序有误:

The CRT libraries use weak external linkage for the new, delete, and DllMain functions. The MFC libraries also contain new,   delete, and DllMain functions. These functions require the MFC libraries to be linked before the CRT library is linked.

  具体解决方法:(另一种解决方法参见最后链接,本人未测试)

  在vs2005项目设置中【Linker】-【input】-【additional dependencies】追击nafxcw.lib,libcmt.lib,Debug下,追加Nafxcwd.lib,libcmtd.lib。

  再次编译通过,但出现

  LINK : warning LNK4098: defaultlib 'uafxcw.lib' conflicts with use of other libs; use /NODEFAULTLIB:library

  在【Linker】-【input】-【Ignore specific library】中追加uafxcw.lib。

http://www.cnblogs.com/huangyong9527/articles/1837444.html

error LNK2005: void * __cdecl operator new(unsigned int) (??2@YAPAXI@Z) already defined in LIBCMT.相关推荐

  1. cmake:解决error LNK2005: void * __cdecl operator new(unsigned __int64) already defined in LIBCMTD.lib

    当以/MT选项编译MFC项目时,会报下面的错误 1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator ...

  2. error LNK2005: _DllMain@12 already defined in MSVC

    error LNK2005: _DllMain@12 already defined in MSVC 方案一. 编程中经常能遇到LNK2005错误--重复定义错误,其实LNK2005错误并不是一个很难 ...

  3. error LNK2005: int dir (?dir@@3HA) already defined in GameStart.obj

    方案一. 编程中经常能遇到LNK2005错误--重复定义错误,其实LNK2005错误并不是一个很难解决的错误.弄清楚它形成的原因,就可以轻松 解决它了.         造成LNK2005错误主要有以 ...

  4. 关于error LNK2005: char * xxx (?xx@@3PADA) already defined in xxx

    今天,看到群上的群友问一个关于LINK2005的BUG,报:已经定义过的错误 其实这个问题难倒了很大一部分程序员,这个错误的原因是他想定义一个全局变量,于是他就在.h文件中直接定义并给这个变量赋值,这 ...

  5. error LNK2005:

    error LNK2005: _DllMain@12 already defined in MSVC 编程中经常能遇到LNK2005错误--重复定义错误,其实LNK2005错误并不是一个很难解决的错误 ...

  6. error LNK2005: _DllMain@12 already defined in MSVC 2009-10-29 17:49

    error LNK2005: _DllMain@12 already defined in MSVC 方案一. 编程中经常能遇到LNK2005错误--重复定义错误,其实LNK2005错误并不是一个很难 ...

  7. error LNK2005: _DllMain@12 already defined in xxx 的应对

    error LNK2005: _DllMain@12 already defined in MSVC 方案一. 编程中经常能遇到LNK2005错误--重复定义错误,其实LNK2005错误并不是一个很难 ...

  8. error LNK2005解决方法

    错误: 1>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)&quo ...

  9. error:LNK2005 函数已经在*.obj中定义

    出现上面的错误,只要原因有如下几个: 1.头文件的重复包含 包含的头文件中含有变量.函数.类的定义,在其他使用的地方多次包含,造成重复包含,产生LNK2005错误, 有两种解决方法: 1)使用宏 在头 ...

最新文章

  1. java_pandas_Joinery
  2. Android存储之SQLiteDatbase
  3. Hyperledger Fabric 词汇表
  4. 整合springMVC
  5. 多项式相乘与相加演示
  6. 解决loaded more than 1 DLL from .libs和No metadata found in lib\site-packages两个错误
  7. [转] Mac os x 使用ftp
  8. java基础巩固笔记(5)-多线程之线程并发库
  9. 海康威视SDK基于JAVA二次开发
  10. html复制到word乱码,word文档打开遇到错误 为什么复制粘贴后乱码
  11. HTTP 和 SOCKS 代理有什么区别,指纹浏览器搭配哪种代理合适
  12. 微信小程序布局技巧(一)
  13. 邮件合并:将多条记录合并到一页
  14. 使用DeepAR实现股价预测
  15. android 手机上浏览网页
  16. Word 突出显示 快捷键
  17. 读取html到超级列表框,超级列表框读取TXT文本配置内容
  18. 华为服务器有海光芯片,刚拿下高通,华为又获得中国电信服务器订单,英特尔急了...
  19. Oracle分页查询的两种方法
  20. springboot 打jar包时分离配置文件

热门文章

  1. matlab 限幅,限幅是什么意思
  2. c++用一级运算比较大小_Python 学习笔记:Python 中的数字和数字型运算
  3. ggplot2 | 位置调整函数
  4. c语言中逗号是什么字符,C语言中的逗号操作符
  5. 灰度重采样的方法分为_DSA医疗影像增强技术特点及方法
  6. linux java 终端命令大全_在java中执行linux终端命令?
  7. 回型数组 C语言上机题,2014年全国计算机等级二级C语言上机考前预测(含答案)6...
  8. SpringMVC中转发和重定向
  9. Java实现计算饮料价格GUI版(入门)
  10. C++中STL-队列和优先队列