error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义
2016-03-31 15:25
531 查看
本文主要分析和解决编译链接时产生的 LNK2005 错误。
【错误信息】:
mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)
【分析原因】:
简单地说,就是产生错误的工程同时使用了CRT库和MFC库,并且链接顺序不对,CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。
【解决方法】:
在“项目 -> 属性 -> 链接器 -> 命令行”栏中,输入 /verbose:lib编译参数,这样,就可以在output窗口看到链接时搜索的库的先后顺序,对于本问题,你一定可以看到类似下面的先后输出:
由此可以看出,默认情况下,先链接了CRT库MSVCRTD.lib,然后链接的是MFC的库mfcs90ud.lib,因此,需要强制改变一下它们的链接顺序。
选择“项目 -> 属性 -> 链接器 -> 输入”栏,在其中的“忽略特定的库”这一栏输入:MSVCRTD.lib mfcs90ud.lib, 然后,在“附加库”这一栏中输入: mfcs90ud.lib MSVCRTD.lib 问题即可解决。
对于这类问题,错误信息 mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined
in MSVCRTD.lib(dllmain.obj)
有两个关键点,谁报错(mfcs90ud.lib),与谁冲突(MSVCRTD.lib),根据这两个库来寻找问题根源
【错误信息】:
mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)
【分析原因】:
简单地说,就是产生错误的工程同时使用了CRT库和MFC库,并且链接顺序不对,CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。
【解决方法】:
在“项目 -> 属性 -> 链接器 -> 命令行”栏中,输入 /verbose:lib编译参数,这样,就可以在output窗口看到链接时搜索的库的先后顺序,对于本问题,你一定可以看到类似下面的先后输出:
> Searching D:\vs2008\VC\lib\MSVCRTD.lib: > Searching D:\vs2008\VC\atlmfc\lib\mfcs90ud.lib:
由此可以看出,默认情况下,先链接了CRT库MSVCRTD.lib,然后链接的是MFC的库mfcs90ud.lib,因此,需要强制改变一下它们的链接顺序。
选择“项目 -> 属性 -> 链接器 -> 输入”栏,在其中的“忽略特定的库”这一栏输入:MSVCRTD.lib mfcs90ud.lib, 然后,在“附加库”这一栏中输入: mfcs90ud.lib MSVCRTD.lib 问题即可解决。
对于这类问题,错误信息 mfcs90ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined
in MSVCRTD.lib(dllmain.obj)
有两个关键点,谁报错(mfcs90ud.lib),与谁冲突(MSVCRTD.lib),根据这两个库来寻找问题根源
相关文章推荐
- (4.5.3.6)failure [INSTALL_FAILED_NO_MATCHING_ABIS]
- Codeforces 145D Lucky Pair (组合计数)
- RAID5工作原理介绍
- Installation error: INSTALL_FAILED_OLDER_SDK
- 非调试模式下运行某项目但提示“is waiting for debugger......”
- poj2527——Polynomial Remains(多项式相除)
- KeyChain相关参数的说明
- crossDomain、allowDomain()、allowScriptAccess三者的关系解析
- how-to-stop-non-jailbroken-pirates-theory
- 对于 NSLayoutConstraint 不执行动画的处理:
- OC copy与retain的区别:
- 最近点对问题 POJ 3714 Raid && HDOJ 1007 Quoit Design
- IntelliJ IDEA 15.0.2导入grails工程
- LeetCode之旅(16)-Climbing Stairs
- LeetCode之旅(16)-Climbing Stairs
- LeetCode之旅(16)-Climbing Stairs
- http://jingyan.baidu.com/article/d169e186b38c37436611d8fa.html
- 小觅机器人sDeno亮相Nvidia发布会 发力人工智能
- 专访小觅机器人sDeno之父:吸引百万关注的促销员
- 手机安装apk出现INSTALL_FAILED_INSUFFICIENT_STORAGE