Как вы собираете библиотеки x64 Boost в Windows? - PullRequest
47 голосов
/ 19 ноября 2008

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

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

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

Ответы [ 3 ]

57 голосов
/ 19 ноября 2008

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

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

3 голосов
/ 14 июня 2017

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

Вот что я должен был сделать, чтобы собрать Boost 1.63 на VS 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) 
...
0 голосов
/ 13 июня 2015

Вы можете найти следующее Boost.Build свойство :

address-model=64
...