如何构建一个从git克隆的单独的boost库?

时间:2018-02-09 21:48:54

标签: c++ boost build boost-program-options bjam

使用这个构建系统提升我基于“Jam”文件并不熟悉。现在,我已经分叉并克隆了一个特定的Boost库(program_options),我想构建它,也许还要运行测试。我注意到build/Jamfile.v2 - 我该怎么办呢?

我在发行版上尝试了apt-get install jam,但这并没有让我走得太远:

$ jam -fbuild/Jamfile.v2
warning: unknown rule project
warning: unknown rule boost-lib
don't know how to make all
...found 2 target(s)...
...can't find 1 target(s)...

另外,我是否必须获取所有Boost的绝对最新开发版本来构建克隆库,或者我可以使用已有的本地boost版本吗?

注意:

  • 我正在使用最近的GNU / Linux发行版(Mint 18.3,但这无关紧要)。

2 个答案:

答案 0 :(得分:1)

根据@SergeyA和其他人的建议,我所做的是:

  1. 以递归方式克隆Boost 所有(请参阅this page(这将创建一个boost/文件夹)
  2. cd boost
  3. .git/modules/my_boost_lib/config中,将原始网址更改为您的前缀
  4. .gitmodules下的[submodule "my_boost_lib"]下,将网址更改为您的前缀
  5. 执行git submodule update --init libs/my_boost_lib/(可能在删除该库后;不确定是否真的有必要)
  6. cd libs/my_boost_lib/build
  7. ../../../b2
  8. 后者有效,因为b2在其当前工作目录中查找Jamfile.v2,并且该文件存在且仅用于构建库。构建结果将位于libs/my_boost_lib之外。

    注意:要构建运行库测试,请从libs/my_boost_lib/test构建相同的方法。

答案 1 :(得分:0)

基本上构建步骤是

  1. 运行bootstrap以构建构建工具b2
  2. 使用b2安装或类似功能构建增强功能。您可能希望为其提供选项。
  3. 在boost入门文档中阅读更多内容: http://www.boost.org/doc/libs/1_66_0/more/getting_started/index.html (提示,请看右下角转到下一页..)

    如果您使用的是Windows / VS2017,使用vcpkg获取提升非常容易。