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

今天編譯一個帶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庫)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章