【问题标题】:Linker requires versions of compiler and Boost in the names of lib-files. fatal error LNK1104链接器在 lib 文件的名称中需要编译器和 Boost 的版本。致命错误 LNK1104
【发布时间】:2017-02-08 10:51:33
【问题描述】:

要安装 boost 我运行

b2 install optimization=speed variant=debug,release --layout=tagged --prefix=BOOST_DIR

lib 文件的名称看起来像

...
libboost_serialization-mt.lib
libboost_serialization-mt-gd.lib
...

当项目链接时出现错误

链接:致命错误 LNK1104:无法打开文件“libboost_serialization-vc140-mt-gd-1_62.lib”

此文件未在项目设置中设置任何名称,仅设置此文件的目录。如果我将编译器和 Boost 版本添加到文件名,则项目链接成功。
当我安装新版本的 Boost 时,我可以让项目不需要重命名 Boost 库文件吗?

【问题讨论】:

    标签: c++ visual-c++ boost


    【解决方案1】:

    使用 --layout=tagged 选项构建 boost 时,您必须在包含任何 boost 标头之前定义 BOOST_AUTO_LINK_TAGGED 以允许自动链接正常工作。否则,通过定义 BOOST_ALL_NO_LIB 并明确指定库来禁用自动链接。

    【讨论】:

      猜你喜欢
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 2021-11-11
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多