gpt4 book ai didi

c++ - 为什么 VisualStudio 要查找这个 lib 文件? LNK1104错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:17:24 25 4
gpt4 key购买 nike

我们有一个使用 VS2008 和 boost 1_42 的大型项目。我正在尝试升级到 VS2010 并 boost 1_44。我安装了 VS2010 和 boost 1_44 并转换了项目。现在我正在尝试构建,所有内容都可以编译,但在链接时失败:

LINK: fatal error LNK1104:无法打开文件“libboost_thread-vc90-mt-1_42.lib”

我更改了 include 和 lib 目录以指向新的 boost 1_44 文件,并且我重命名了旧的 bo​​ost 1_42 目录。

为什么链接器仍在寻找 vc90-1_42 文件,而它仅使用 1_44 header ?有没有一种方法可以确定链接器为什么需要这个文件?链接器显然认为它需要该文件,但为什么呢?

我已经清理了项目并正在重新构建以确保删除所有旧的构建文件。

最佳答案

我也遇到过几次这个问题。它通常是一些旧的临时文件,但就像您的情况一样,清洁并不总是能立即解决问题。您的项目是否包含任何可能使用 1.42 构建的静态库?

您可以尝试一些可能有助于或可能不会帮助追踪您的问题的方法:将旧的 bo​​ost 目录重命名回原来的名称

  • 清洁溶液
  • 在C/C++->命令行->附加选项下添加“/showIncludes”
  • 在链接器->命令行->附加选项下添加“/verbose:lib”
  • 全部重建

然后,当您构建时,您将能够在输出窗口中看到包含 1.42 header 的位置等。不知何故,这样做帮助我找到了问题所在。

关于c++ - 为什么 VisualStudio 要查找这个 lib 文件? LNK1104错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4125956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com