C++ 链接器错误 - 错误 LNK2005: ... 已定义
Posted
技术标签:
【中文标题】C++ 链接器错误 - 错误 LNK2005: ... 已定义【英文标题】:C++ Linker Errors - error LNK2005: ... already defined 【发布时间】:2022-01-13 12:16:35 【问题描述】:我有一个项目可以在 x64 位中正确构建,但在 32 位中会抛出如下所示的错误: libeay32-s-MT.lib(err.obj) : 错误 LNK2005: _ERR_error_string 已在 libcrypto.lib(libcrypti-1_1.dll) 中定义
有一个列表,但它们看起来都相似。不确定这是否与它在 32 位中引发错误有关,或者是否与配置中的其他内容有关。有人有类似的吗?我正在使用 VS2017 和 Windows。
【问题讨论】:
【参考方案1】:错误消息表明问题来自库文件。请检查是否存在重复定义和库的兼容性问题。我建议你阅读这个document,它提供了一些解决方案供你参考。
【讨论】:
我想知道它是否与 VC Distributable 或 Visual Studio 更新有关。这曾经很好用,对我的队友也很有效。 根据您的描述,问题排查困难。 release note可以查看新版VS的一些重大变化,可以使用这些文档排查错误原因。另外,VS的更新会影响缓存,这也可能是报错的原因。如果以上方法都不能解决你的问题,建议你去DC报告问题。以上是关于C++ 链接器错误 - 错误 LNK2005: ... 已定义的主要内容,如果未能解决你的问题,请参考以下文章