【问题标题】:Fatal error LNK1104: cannot open file 'libboost_log-vc141-mt-gd-1_64.lib'致命错误 LNK1104:无法打开文件“libboost_log-vc141-mt-gd-1_64.lib”
【发布时间】:2017-11-04 02:56:27
【问题描述】:

我正在编写一个利用 Boost 日志记录功能的程序,因此,在尝试构建上述程序时,我在生成代码时遇到以下错误(在 Visual Studio 2017 上):

1>链接:致命错误 LNK1104:无法打开文件“libboost_log-vc141-mt-gd-1_64.lib”

不过,我可以确认以下几点:

  • boost_1_64_0\stage\lib 已添加到 Linker -> General 下的“Additional Library Directories”中
  • libboost_log-vc141-mt-gd-1_64.lib 位于 stage/lib 下,因为在解压 Boost 时,我使用工具集设置为 14.1 进行了完整构建
  • 根据相关问题的答案,我确实将特定的 .lib 添加到 Linker -> Input 下的“Additional Dependencies”中

我觉得很明显我错过了一些东西。但是,任何帮助将不胜感激。

【问题讨论】:

  • 你是在混合 32 位和 64 位吗?
  • Tools->OptionsProjects and Solutions->Build and RunMSBuild project build log verbosity 设置为Diagnostic。构建您的项目。检查中间输出文件夹中的日志并搜索 boost 库名称和它使用的链接命令行。

标签: c++ visual-studio boost visual-studio-2017 lib


【解决方案1】:

drescherjm 是正确的,我混合了 32 位和 64 位。需要将 Project Configuration Properties -> Linker -> Advanced 下的 Target Machine 更改为 MACHINEX86 并且它可以工作。

谢谢!

【讨论】:

    【解决方案2】:

    对我来说,我使用下面的定义来链接日志库以便动态使用。我删除了它并工作了。

    //#define BOOST_LOG_DYN_LINK 1 // necessary when linking the boost_log library dynamically
    

    【讨论】:

      猜你喜欢
      • 2018-04-07
      • 1970-01-01
      • 2011-02-22
      • 2011-01-17
      • 2012-10-14
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      相关资源
      最近更新 更多