VC++編譯代碼出現LNK2005錯誤的一種情況的解決

在一個VC控制檯應用程序中,加入對ADO的引用,編譯後,出現如下錯誤提示,


1>MSVCRTD.lib(MSVCR120D.dll) : error LNK2005: __beginthreadex 已經在 libcmtd.lib(threadex.obj) 中定義
1>MSVCRTD.lib(MSVCR120D.dll) : error LNK2005: __endthreadex 已經在 libcmtd.lib(threadex.obj) 中定義
1>MSVCRTD.lib(MSVCR120D.dll) : error LNK2005: _fclose 已經在 libcmtd.lib(fclose.obj) 中定義
1>MSVCRTD.lib(MSVCR120D.dll) : error LNK2005: _fopen 已經在 libcmtd.lib(fopen.obj) 中定義
1>MSVCRTD.lib(MSVCR120D.dll) : error LNK2005: _sprintf 已經在 libcmtd.lib(sprintf.obj) 中定義
1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) 已經在 libcmtd.lib(typinfo.obj) 中定義
1>MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) 已經在 libcmtd.lib(typinfo.obj) 中定義


設置忽略MSVCRTD.lib,仍然有錯誤,經查MSDN關於LNK2005錯誤的說明,使用如下選項,編譯通過。

在工程屬性的->鏈接器->命令行->【其他選項】中填入如下選項:

/FORCE:MULTIPLE 

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