如何用64位构建Boost 1.64?

时间:2017-05-12 21:12:19

标签: c++ boost

我正在运行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位!!

可能出现什么问题?

此致 胡安登特

4 个答案:

答案 0 :(得分:10)

要更新我给出的答案hereVisual Studio 2017是一个新工具集,因此只需将toolset=msvc-14.0Visual 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位相同。

这一步一步为我工作:

  1. 打开VS 2017的x64 Native Tools命令提示符;
  2. 将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 ;

  3. 执行命令

    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

  4. 编译开始时应该有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