我使用 b2.exe
和 bjam.exe
为 VS2013 构建了 64 位架构的 Boost。根据 Boost documentation , b2
必须在 bjam
上使用。我注意到的差异是:
- b2 中的 .lib 文件的大小与相应的 bjam 文件的大小不同。
- 使用 bjam 提供动态 .lib 库(不带 -s 标记,如 here 所述),但它不提供要链接到的 .dll 文件(那么现在该怎么办?) ,而使用 b2 会同时提供静态库和动态库以及 .dll 文件。但使用 b2 的问题是,它提供了两个动态 .lib 文件 - 一个以 boost_xxxx.lib 开头,另一个以 libboost_xxxx.lib 开头,两者大小不同。 这是为什么?
我还提到了使用构建选项 --build-dir
的不同构建目录,但是这个目录有什么用呢?它由 .obj、.rsp 以及相应的 .dll 和 .lib 文件组成。这个目录可以删除吗?
以下是我用来构建 Boost 的命令:
b2:
b2 toolset=msvc-12.0 --build-type=complete architecture=x86 address-model=32 install --build-dir=<build-dir> stage --stagedir=<stage-dir> -j2
bjam:
bjam stage --stagedir=<stage-dir>
最佳答案
b2 和 bjam 是相同的文件,只是它们的名称不同。不同的结果是用不同的参数调用它们的结果。
关于首选名称:调用 ./b2 --help
和 ./bjam --help
都产生名称 b2
。
关于c++ - b2 vs bjam 用于构建 Boost 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31351230/