Chinaunix首页 | 论坛 | 博客
  • 博客访问: 165392
  • 博文数量: 30
  • 博客积分: 296
  • 博客等级: 二等列兵
  • 技术积分: 407
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-16 21:37
个人简介

a

文章分类

全部博文(30)

文章存档

2016年(1)

2015年(8)

2014年(1)

2013年(11)

2012年(6)

2011年(1)

2010年(2)

分类: C/C++

2016-11-10 15:56:34

2016.11.10
vs2010 编译dll项目的Release版本时出现以下错误:
error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)

百度该问题,是因为以下原因:
CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。
这些函数要求先链接 MFC 库,然后再链接 CRT 库。 

但是我不明白什么是弱外部链接,根据提供的解决办法做以下修改后编译成功。
1. 打开项目属性,找到配置属性-链接-输入
2. 在忽略特定默认库项目里输入 MSVCRT.lib;mfcs100.lib
3. 在附加依赖相里输入 mfcs100.lib;MSVCRT.lib

就是强制链接器按照正确的顺序链接库。

阅读(1228) | 评论(0) | 转发(0) |
0

上一篇:上班日记 2015.10.13 星期二

下一篇:没有了

给主人留下些什么吧!~~