如何在 1.64 位中构建 Boost 64

How to build Boost 1.64 in 64 bits?

本文关键字:构建 Boost      更新时间:2023-10-16

我运行的是Windows 10,我的笔记本电脑上安装了Visual Studio 2017社区版。我有一些较旧的程序,在VS 2015中编译得很好,Boost 1.62.0在64位。由于一些非常奇怪的原因,我找不到一种方法来编译使用VS 2017使用此命令行的Boost 1.64.0(此处为文件系统和计时器(中的任何库:

b2 --build-dir=..\build_here --with-filesystem --with-timer --address-model=64

命令将执行并构建库,但为 32 位!!

可能出现什么问题?

问候胡安·登特

更新我在这里给出的答案。 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

注: Visual Studio 2017的正确b2工具集msvc-14.1不是msvc-15.0
Visual Studio 2019 b2工具集是 msvc-14.2
如果有疑问(并且您只安装了一个版本的Visual Studio(,只需使用toolset=msvc

我不知道

为什么,但是 Boost 是使用 32 位编译的,与 VS 2017 的本机 x64 提示符相同。

这个循序渐进的方法对我有用:

  1. 打开 x64 本机工具命令提示符 VS 2017;
  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=buildx64 install --prefix="C:Program FilesBoost" -j4

    bjam.exe toolset=msvc-14.1 address-model=64 architecture=x86 runtime-link=static,shared link=static threading=multi build-dir=buildx64 install prefix="C:Program FilesBoost" -j4

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

尝试指定 architecture=ia64

例如

b2.exe --toolset=msvc-14.1 --address-model=64 --architecture=ia64 --runtime-link=static,shared --link=static threading=multi --build-dir=buildx64 install --prefix="C:Program FilesBoost" -j4

考虑通过输入您需要的每个 boost 版本目录并在那里运行以下命令来节省大量时间:

bootstrap && b2 -a install

通过这种方式,C:\Boost 目录使用构建的库构建选项的所有可能组合(包括 x64(创建。您可能需要打开此目录压缩。