首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个LNK2005错误

多个LNK2005错误
EN

Stack Overflow用户
提问于 2013-11-08 03:33:49
回答 2查看 10.3K关注 0票数 2

我正在编译一个项目,并且有以下错误:

代码语言:javascript
复制
  LIBCMTD.lib(_file.obj) : error LNK2005: ___iob_func already defined in      MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(crt0dat.obj) : error LNK2005: __cexit already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(crt0dat.obj) : error LNK2005: __amsg_exit already defined in MSVCRTD.lib(MSVCR90D.dll) 
  LIBCMTD.lib(crt0dat.obj) : error LNK2005: __initterm_e already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(fflush.obj) : error LNK2005: _fflush already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(setlocal.obj) : error LNK2005: __configthreadlocale already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(tidtable.obj) : error LNK2005: __encode_pointer already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(tidtable.obj) : error LNK2005: __decode_pointer already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(sprintf.obj) : error LNK2005: _sprintf already defined in MSVCRTD.lib(MSVCR90D.dll)
  LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in MSVCRTD.lib(cinitexe.obj)
  LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in MSVCRTD.lib(cinitexe.obj)
  LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in MSVCRTD.lib(cinitexe.obj)
  LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRTD.lib(cinitexe.obj)

当我删除两个库时,这些错误不再出现,但我有一些未解决的内部符号错误。所以我必须维护这些库。有没有一种方法可以忽略已经定义的函数,这样就不会出现LNK2005错误?

EN

回答 2

Stack Overflow用户

发布于 2013-11-08 03:40:32

为什么这两个版本同时出现在你的项目中,在不了解你的设置的情况下是不可能说出来的。

如果您将第三方库添加到需要不同版本的运行时库的项目中,则可能会发生这种情况。

这通常可以通过使用

Project Properties -> Linker -> Input -> Ignore Specific Default Libraries

在项目属性中为您的可执行文件设置。决定要使用哪个库(LIBCMTD.libMSVCRTD.lib),并要求链接器忽略另一个库。

票数 15
EN

Stack Overflow用户

发布于 2016-09-07 22:53:57

除了@Ant所说的,

此MSDN页显示如何/如何设置“忽略特定默认库”列表:https://msdn.microsoft.com/en-us/library/aa267384(v=vs.60).aspx

在属性->链接器->输入->忽略特定的默认库下

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19845018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档