我使用b2.exebjam.exe构建了适用于VS2013、64位体系结构的Boost。根据Boost documentation,必须在b2上使用bjam。我注意到的差异是:

  • 来自b2的.lib文件的大小与相应的bjam文件的大小不同。
  • 使用bjam可提供动态的.lib库(没有here提到的-s标签),但是它不提供链接到的.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/

    10-12 17:41