有很多与此相关的问题,但到目前为止,在我的案例中没有一个是解决方案。 我使用工具集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.exeusing msvc : 14.1;
快速构建了库:所有x64库都低于20秒!
答案 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