提升链接器错误错误的工具集

时间:2017-04-06 18:01:34

标签: c++ boost linker

有很多与此相关的问题,但到目前为止,在我的案例中没有一个是解决方案。 我使用工具集14.1

在VS 2017中构建了boost 1.63库

构建boost库的命令行是:

bjam --toolset=msvc-14.1 --build-dir="libs"  --stagedir="x64" --build-type=complete stage  address-model=64 threading=multi link=static runtime-link=static

构建文件夹中的第二个库是

libboost_atomic-vc141-mt-sgd-1_63.lib

我使用boost的项目指向此文件夹。但与VS 2017联系 和选择的工具集14.1会引发错误:

LINK : fatal error LNK1104: cannot open file 'libboost_atomic-vc140-mt-sgd-1_63.lib'

如您所见,只有工具集不正确。 是否有额外的开关,在哪里可以找到?谢谢。

一条评论:我使用project-config.jam设置

构建了bjam.exe
using msvc : 14.1;

快速构建了库:所有x64库都低于20秒!

2 个答案:

答案 0 :(得分:1)

Boost 1.63尚未与Visual Studio 2017兼容,因此您需要手动修复一些事情。为了确保它能够获取正确的库文件,您需要对auto_link.hpp进行编辑,boost/config位于# elif defined (BOOST_MSVC) // vc14: # define BOOST_LIB_TOOLSET "vc140" 。改变这些行:

# elif defined (BOOST_MSVC) && (BOOST_MSVC < 1910)

     // vc14:
#  define BOOST_LIB_TOOLSET "vc140"

# elif defined (BOOST_MSVC)

     // vc15:
#  define BOOST_LIB_TOOLSET "vc141"

对此:

let a = ["Hello", "bye", "good morning", "test"];
let b = ["Hello", "test"];

然后对boost库进行干净的重新编译,并使用此修改版本替换包含此文件的原始版本。

答案 1 :(得分:0)

我遇到了同样的问题,但是boost 1.64和文件libboost_system-vc141-mt-1_64.lib产生了,但是当我在VS2017上编译时失败,并要求我提供libboost_system-vc140-mt-1_64.lib