Как вы собираете библиотеки x64 Boost в Windows?

Я много раз создавал библиотеки Boost для x86, но, похоже, я не могу создавать библиотеки для x64. Я запускаю «Командную строку Cross Tools Visual Studio 2005 x64» и запускаю свою обычную сборку:

bjam --toolset=msvc --build-type=complete --build-dir=c:\build install

Но он по-прежнему создает файлы x86 .lib (я проверил это с помощью dumpbin / headers). Что я делаю неправильно?


person Ferruccio    schedule 19.11.2008    source источник


Ответы (4)


Вам нужно добавить параметр address-model=64.

Посмотрите, например, здесь.

person macbirdie    schedule 19.11.2008
comment
Этот ответ также действителен для нового инструмента сборки ускорения b2. - person anderas; 25.05.2016
comment
можешь тогда это объяснить? C: \ Boost \ boost_1_61_0 ›. \ B2 --stagedir = lib \ x64 architecture = x86 address-model = 64 link = static --build-type = complete stage Выполнение проверки конфигурации - 32-разрядная версия: да - person stu; 01.09.2016
comment
Кажется, что address-model не отображается в выводе b2 --help (b2 4.3), как мне получить помощь из командной строки? - person yushang; 11.04.2021

Принятый ответ правильный. Добавьте это на тот случай, если кто-то еще погулит этот ответ и все равно не сможет создать версию x64.

Вот что мне пришлось сделать, чтобы собрать Boost 1.63 в Visual Studio 15 2017 Community Edition.

Команды, выполняемые из командной оболочки среды VS. Инструменты -> Командная строка Visual Studio

C:\Work\Boost_1_63> C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat amd64
C:\Work\Boost_1_63> bootstrap.bat
C:\Work\Boost_1_63> bjam -j4 architecture=x86 address-model=64 link=static stage
C:\Work\Boost_1_63> bjam --prefix=C:\opt\boost architecture=x86 address-model=64 link=static install

Вы можете проверить, что полученный .lib - x64, с помощью dumpbin:

C:\Work> dumpbin /headers C:\work\boost_1_63\stage\lib\libboost_locale-vc140-mt-1_63.lib | findstr machine
8664 machine (x64)
8664 machine (x64)
8664 machine (x64)
8664 machine (x64) 
...
person Teemu Ikonen    schedule 14.06.2017

С b2 команда:

b2 --build-dir=build/x64 address-model=64 threading=multi --build-type=complete --stagedir=./stage/x64

Вначале он будет показывать default address-model: 32-bit, но все равно будет построен в 64-битном формате (как сбивает с толку). Вам должны быть созданы библиотеки DLL с такими именами, как library-vc140-mt-x64-1_71.dll, подтверждающими, что это 64-битная версия.

источник: Building Boost 32-бит и 64 -битные библиотеки в Windows

person RemiDav    schedule 30.10.2019