现在的位置: 首页 > 综合 > 正文

error LNK2005: _DllMain@12 already defined in ****.lib解决方法

2013年12月04日 ⁄ 综合 ⁄ 共 422字 ⁄ 字号 评论关闭

今天编译一个带mfc的控制台程序,出现了如下链接错误:

mfcs90d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)

网上找了一下,原来是CRT 库对某些函数使用弱外部链接导致的。

microsoft给出了解决办法:http://support.microsoft.com/kb/148652

由于其给出的解决方案是基于VC6.0的,因此我在VS2008编译器上实践如下:

进入工程的Properties,然后Linker的input下,在“Additional Dependencies”中填入 mfcs90d.lib MSVCRTD.lib,然后在Ignore Specific Library中填入mfcs90d.lib;MSVCRTD.lib,再链接即可通过。

其实也就是手动指定两个库的链接顺序罢了。(先链接MFC库,再链接CRT库)

抱歉!评论已关闭.