我为 VS2013 构建了 Boost,64 位架构同时使用b2.exe
和bjam.exe
. 根据 Boost文档,b2
必须使用过bjam
。我注意到的差异是:
- b2 中 .lib 文件的大小与相应 bjam 文件的大小不同。
- 使用 bjam 提供动态 .lib 库(没有 -s 标记,如此处所述),但它不提供要链接到的 .dll 文件(那么现在该怎么办?),而使用 b2 提供静态和动态库以及.dll 文件。但是使用 b2 的问题是,它提供了两个动态 .lib 文件 - 一个以 boost_xxxx.lib 开头,另一个以 libboost_xxxx.lib 开头,两者的大小不同。这是为什么?
我还提到了使用构建选项的不同构建目录--build-dir
,但是这个目录有什么用?它由 .obj、.rsp 以及各自的 .dll 和 .lib 文件组成。这个目录可以删除吗?
以下是我用来构建 Boost 的命令:
乙2:
b2 toolset=msvc-12.0 --build-type=complete architecture=x86 address-model=32 install --build-dir=<build-dir> stage --stagedir=<stage-dir> -j2
果酱:
bjam stage --stagedir=<stage-dir>