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

发表评论

您的电子邮箱地址不会被公开。