4

我正在尝试使用以下说明在 Visual Studio 的 x64 终端上构建提升:https ://www.boost.org/doc/libs/1_62_0/more/getting_started/windows.html#get-boost

我愿意:

boostrap

然后

.\b2 address-model=64

但它总是说:

C:\boost_1_70_0>.\b2 address-model=64
Performing configuration checks

    - default address-model    : 32-bit
    - default architecture     : x86

Building the Boost C++ Libraries.

...

然后继续构建所有内容的 32 位版本。我知道这一点,因为当我尝试将 boost 用于 CMake 之类的东西时,它抱怨它的 32 位:

C:\src\SimpleAmqpClient\simpleamqpclient-build>cmake -DBOOST_ROOT=C:\boost_1_70_0 -DBOOST_LIBRARYDIR=C:\boost_1_70_0\stage\lib ..
-- Found Boost 1.70.0 at C:/Program Files/boost/lib/cmake/Boost-1.70.0
--   Requested configuration: QUIET REQUIRED COMPONENTS chrono;system
-- Found boost_headers 1.70.0 at C:/Program Files/boost/lib/cmake/boost_headers-1.70.0
-- Found boost_chrono 1.70.0 at C:/Program Files/boost/lib/cmake/boost_chrono-1.70.0
-- No suitable boost_chrono variant has been identified!
--   libboost_chrono-mgw82-mt-d-x32-1_70.a (32 bit, need 64)
--   libboost_chrono-mgw82-mt-x32-1_70.a (32 bit, need 64)
CMake Error at C:/Program Files/boost/lib/cmake/Boost-1.70.0/BoostConfig.cmake:95 (find_package):
  Found package configuration file:

    C:/Program Files/boost/lib/cmake/boost_chrono-1.70.0/boost_chrono-config.cmake

  but it set boost_chrono_FOUND to FALSE so package "boost_chrono" is
  considered to be NOT FOUND.  Reason given by package:

  No suitable build variant has been found.

Call Stack (most recent call first):
  C:/Program Files/boost/lib/cmake/Boost-1.70.0/BoostConfig.cmake:124 (boost_find_dependency)
  C:/Program Files/CMake/share/cmake-3.15/Modules/FindBoost.cmake:273 (find_package)
  CMakeLists.txt:35 (FIND_PACKAGE)


-- Configuring incomplete, errors occurred!
See also "C:/src/SimpleAmqpClient/simpleamqpclient-build/CMakeFiles/CMakeOutput.log".

所以是的,我怎样才能构建 64 位?

4

3 回答 3

7

请参阅我在这里给出的答案:如何以 64 位构建 Boost 1.64?
如果您想明确指定工具集,那么Visual Studio 2019toolset=msvc-14.2

注意:确保从 a 构建它Visual Studio tools Command Prompt
并忽略- default address-model : 32-bit控制台上的输出,它构建 64 位二进制文​​件。

于 2019-06-15T07:10:26.183 回答
0

我刚刚遇到了这个问题。即使我address-model=64在命令行中指定了 32 位工具,而 64 位工具不在我PATH的工具中,但 Jam 使用了 32 位工具。它甚至不知道自己正在这样做:它x64输入了它使用 32 位工具创建的 32 位库的名称,这些工具已经竭尽全力寻找和调用。我喜欢“智能”构建系统。

我不知道为什么会这样,但我通过编辑和bin.v2\standalone\msvc\msvc-{version}\address-model-64\architecture-x86\msvc-setup.bat移动来解决它。...\bin\Hostx64\x64...\bin\HostX86\x86SET PATH=...

正如另一个答案中提到的,即使它正确构建 64 位二进制文​​件,它仍会报告“默认地址模型:32 位”。

于 2020-09-29T00:20:40.670 回答
-3

我的指南有详细的说明,这些说明可能对如何在 Visual Studio 2019 中的 Windows 10 上使用 python 和 mpi 支持构建 64 位提升很有用。我写了笔记,以防我需要再做一次。

我认为这可能与遗漏有关--

b2 --address-model=64

但有人告诉我这是不正确的。

于 2019-06-26T04:09:30.647 回答