【问题标题】:Error LNK1104 cannot open file 'libboost_filesystem-vc141-mt-gd-1_65_1.lib'错误 LNK1104 无法打开文件“libboost_filesystem-vc141-mt-gd-1_65_1.lib”
【发布时间】:2018-04-07 05:08:06
【问题描述】:

我似乎无法解决这个问题。我想使用 boost 但继续收到错误 LNK1104 无法打开文件“libboost_filesystem-vs141-mt-gd-1_65_1.lib”。我已按照以下步骤操作,即: 1. 打球 2.运行b2(原为bjam) 3. 链接文件。 收到错误后,我进行了挖掘并更改了其他一些内容。请参阅下面的图片以更好地了解我已完成的工作.

感谢您以后的所有回答,感谢您抽出宝贵的时间。

【问题讨论】:

  • 此文件是否存在于您的 boost\stage\lib 文件夹中?
  • 查看这些设置的“命令行”类别。在那里,您将看到链接引用的每个库包含文件夹。验证库是否在其中之一中
  • @tkausl 文件夹中确实存在该文件。
  • @Joe 命令行类别也显示以下内容 "/ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"C:\Users\skudt\source\boost_1_65_1\stage\lib" /TLBID:1"
  • 好的,那么您要查找的库一定不存在(在 c:\users\skudt\source\boost_1_64\stage\lib 中),因为链接器没有找到它。而且在其他任何地方都找不到。下一步是将链接器设置更改为尽可能详细。这将向您显示(如果您有耐心阅读所有内容)链接器搜索链接库的每条路径。

标签: c++ boost compiler-errors boost-filesystem


【解决方案1】:

此错误的最常见原因是:

1- 建筑。 .lib 为 x64,构建为 32 位,反之亦然(.lib 为 32,构建为 x64)。

2- 文件路径。 检查升压路径是否相同。 如果您使用的是预编译库,则路径类似于 .....\boost_1_65_1\lib64-msvc-14.1 但是如果你已经编译了,它会像 stage\lib。 在资源管理器中搜索并剪切并粘贴路径。

问候

【讨论】:

    【解决方案2】:

    确保在项目的 Visual Studio 调试属性中将“\stage\lib”添加到链接器库包含路径。如果您通过命令提示符安装 boost,首先运行 bootstap.bat 批处理文件,然后运行 ​​b2.exe ,编译过程完成后,将显示一条消息,指示您添加该路径,因此链接器不会混淆当它寻找它时。

    【讨论】:

      【解决方案3】:

      使用 boost_1_67_0-msvc-14.0-64.exe(从 https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/ 下载)安装预构建提升后,我遇到了类似的错误。事实证明,预构建 (14.0) 存在 lib 命名问题,例如引用名称中包含字符串“-vc141-”而不是“-vc140-”的文件。

      我放弃了它并使用了安装程序 boost_1_67_0-msvc-14.1-64.exe(注意 msvc14.1)。我看到的所有问题现在都消失了。

      【讨论】:

      • boost-binaries 是运行 b2.exe 后的完整库,对吗?
      【解决方案4】:

      这是因为配置的平台工具集与您要使用的库不同。 您可以在 Visual Studio '19 中的以下设置下轻松设置它:配置属性 -> 常规 -> 平台工具集,然后选择要使用的那个。

      例如:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-15
        • 2014-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多