如何在Windows上构建x64 Boost库?

时间:2008-11-19 15:18:14

标签: c++ visual-studio-2005 boost 64-bit boost-build

我已多次构建x86 Boost库,但我似乎无法构建x64库。我启动“Visual Studio 2005 x64交叉工具命令提示符”并运行我的常规构建:

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

但它仍然生成x86 .lib文件(我用dumpbin / headers验证了这一点)。 我做错了什么?

4 个答案:

答案 0 :(得分:57)

您需要添加address-model=64参数。

看看,例如here

答案 1 :(得分:3)

接受的答案是正确的。添加此项以防其他人搜索此答案仍然无法生成x64版本。

以下是我在VS 15 2017社区版上构建Boost 1.63所必须做的事情。

从VS环境cmd shell执行的命令。工具 - > 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

您可以使用dumpbin验证生成的.lib是否为x64:

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) 
...

答案 2 :(得分:0)

您可能会发现以下Boost.Build property

address-model=64

答案 3 :(得分:0)

使用b2时,命令为:

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

它将在开始时显示default address-model: 32-bit,但仍将以64位构建(令人困惑)。您应该使用诸如library-vc140-mt-x64-1_71.dll之类的名称创建的dll,以确认它是64位。 / p>

来源:Building Boost 32-bit and 64-bit libraries on Windows