问题
I am trying to build boost on the x64 terminal for Visual Studio using these instructions: https://www.boost.org/doc/libs/1_62_0/more/getting_started/windows.html#get-boost
I do:
boostrap
then
.\b2 address-model=64
but it always says:
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.
...
and then goes on to build 32 bit versions of everything. I know this because when I try and use boost for things like CMake it complains that its 32 bit:
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".
So yeah, how can I build 64-bit?
回答1:
See the answer I gave here: How to build Boost 1.64 in 64 bits?
If you want to specify the toolset explicitly then Visual Studio 2019
is toolset=msvc-14.2
Note: ensure that you build it from a Visual Studio tools Command Prompt
and ignore the - default address-model : 32-bit
output on the console, it builds 64 bit binaries.
回答2:
See my guide for detailed instructions for how to build 64-bit boost on Windows 10 in Visual Studio 2019 with python and mpi support.
Also the syntax might matter. Maybe because you didn't use --
it gets ignored.
b2 --address-model=64
I use more options. See the guide I linked.
来源:https://stackoverflow.com/questions/56603575/how-to-build-64-bit-boost-for-visual-studio-on-windows-using-the-address-model-f