我正在运行Windows 10并在我的笔记本电脑中安装了Visual Studio 2017社区版。 我有一些较旧的程序在VS 2015中使用64位的Boost 1.62.0编译得很好。 出于一些非常奇怪的原因,我无法使用VS 2017使用此命令行找到编译来自Boost 1.64.0(此处为文件系统和计时器)的任何库的方法:
b2 --build-dir = .. \ build_here --with-filesystem --with-timer --address-model = 64
该命令将执行并且将构建库,但是以32位!!
可能出现什么问题?
此致 胡安登特
答案 0 :(得分:10)
要更新我给出的答案here。 Visual Studio 2017
是一个新工具集,因此只需将toolset=msvc-14.0
(Visual Studio 2015
)替换为toolset=msvc-14.1
,即:
在Visual Studio工具命令提示符中:
cd boost_1_64_0
call bootstrap.bat
对于静态库(推荐用于Windows):
b2 -j8 toolset=msvc-14.1 address-model=64 architecture=x86 link=static threading=multi runtime-link=shared --build-type=complete stage
注意:必须使用动态链接构建线程,请参阅:https://studiofreya.com/2015/05/20/the-simplest-way-of-building-boost-1-58-for-32-bit-and-64-bit-architectures-with-visual-studio/
在动态库中构建线程:
b2 -j8 toolset=msvc-14.1 address-model=64 architecture=x86 link=shared threading=multi runtime-link=shared --with-thread --build-type=minimal stage
注意:
b2
正确的Visual Studio 2017
工具集msvc-14.1
不是msvc-15.0
,如前所述。
如果有疑问(并且您只安装了一个版本的Visual Studio),请使用toolset=msvc
。
答案 1 :(得分:2)
我不知道为什么,但是Boost的编译与VS 2017的原生x64提示符的32位相同。
这一步一步为我工作:
将boost_1_66_0 \ project-config.jam更改为:
import option ;
//Check your compiler path here:
using msvc : 14.1 : "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.12.25827/bin/Hostx64/x64/cl.exe";
using mpi ;
option.set keep-going : false ;
执行命令
b2.exe --toolset=msvc-14.1 --address-model=64 --architecture=x86 --runtime-link=static,shared --link=static threading=multi --build-dir=build\x64 install --prefix="C:\Program Files\Boost" -j4
或
bjam.exe toolset=msvc-14.1 address-model=64 architecture=x86 runtime-link=static,shared link=static threading=multi build-dir=build\x64 install prefix="C:\Program Files\Boost" -j4
编译开始时应该有64位= yes。
答案 2 :(得分:1)
考虑通过输入您需要的每个 boost 版本目录并在那里运行来节省大量时间:
bootstrap && b2 -a install
以这种方式创建 C:\Boost 目录,其中包含构建的库构建选项的所有可能组合,包括 x64。您可能想要打开此目录压缩。
答案 3 :(得分:0)
尝试指定
architecture=ia64
例如
b2.exe --toolset=msvc-14.1 --address-model=64 --architecture=ia64 --runtime-link=static,shared --link=static threading=multi --build-dir=build\x64 install --prefix="C:\Program Files\Boost" -j4