【问题标题】:VS2010 fails on linking a lib that it's supposed to buildVS2010 无法链接它应该构建的库
【发布时间】:2012-12-19 21:47:03
【问题描述】:

我在尝试构建我的 DLL 项目时遇到了 VS2010 的问题。 DLL 本身生成得很好,但是我需要与其他依赖项目链接的.lib 文件失败了。

我有一个经典的__declspec(dllexport) 和一切,不用担心,构建在调试模式下完美运行。我只在发布模式下遇到这个问题,但我不认为我搞砸了我的设置(它们几乎是默认设置)。

这是我得到的输出错误(未解析的外部符号):

Erreur  274 error LNK1120: 1 externes non résolus   \Release\Engine.lib Engine
Erreur  273 error LNK2001: symbole externe non résolu App   LINK    Engine

肯定 Visual Studio 找不到这个文件:它应该生成它!

我以为我在Dll project doesn't build as Linker not able to find the same named .lib file 中找到了解决方案 (同样的问题)但我不明白答案是如何解决任何问题的。

有没有人遇到过这个问题并找到了避免它的方法?

【问题讨论】:

  • 有没有可能,*.lib 是实际构建的,但保存在另一个文件夹中?
  • 错误信息并没有说出你的想法——它告诉你它试图构建哪个文件,并给你一个它不能构建的 symbol 的名称在它链接的任何目标文件或库中查找。

标签: c++ visual-studio-2010 dll linker


【解决方案1】:

构建在调试模式下完美运行。我只有这个问题 释放模式

打开您的 .vcxproj 文件并检查调试和发布版本之间的依赖关系是否一致,例如外部库、其他包含路径等。当我遇到这种情况时,通常是因为我添加了一些调试配置而忘记了对发布进行类似的更改。

【讨论】:

  • 这两种配置之间确实存在差异,这是我在VS下使用项目的属性时没有发现的。对于那些对有什么区别感兴趣的人,我在 Release 而不是 Debug 中有这一行: /EXPORT:App %(AdditionalOptions) 非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 2023-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多