如何用64位构建Boost 1.64?

Jua*_*ent 12 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位!

怎么可能出错?

此致,Juan Dent

ken*_*nba 16

要更新我在这里给出的答案.Visual Studio 2017是一个新的工具集,所以只需用ie 代替toolset=msvc-14.0(for Visual Studio 2015)toolset=msvc-14.1:

在Visual Studio工具命令提示符中:

cd boost_1_64_0
call bootstrap.bat
Run Code Online (Sandbox Code Playgroud)

对于静态库(推荐用于Windows):

b2 -j8 toolset=msvc-14.1 address-model=64 architecture=x86 link=static threading=multi runtime-link=shared --build-type=complete stage
Run Code Online (Sandbox Code Playgroud)

注意:必须使用动态链接构建线程,请参阅:https://studiofreya.com/2015/05/20/the-simplest-way-of-building-boost-1-58-for-32-bit-and-64位的架构与-视觉工作室/

要在动态库中构建线程:

b2 -j8 toolset=msvc-14.1 address-model=64 architecture=x86 link=shared threading=multi runtime-link=shared --with-thread --build-type=minimal stage
Run Code Online (Sandbox Code Playgroud)

注意:正确的b2工具集Visual Studio 2017msvc-14.1 不是 msvc-15.0如我先前所说.
如果有疑问(并且您只安装了一个版本的Visual Studio),请使用b2.


gil*_*ore 5

我不知道为什么,但是 Boost 是用 32 位编译的,与 VS 2017 的原生 x64 提示相同。

这一步一步对我有用:

  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

在编译开始时,您应该有一个 64 位 = yes。