c++ - 如何在 Travis CI 中使用最新的 boost 版本?

标签 c++ boost travis-ci

我尝试通过多种方式在 Travis CI 环境中安装 boost 1.64。但他们都没有成功。 在我第一次天真的尝试中,我只是在 travis 脚本中添加了以下行:

install:
  - sudo apt-get install libboost1.64-all-dev

结果是错误信息:找不到包 libboost1.64-all-dev

在第二次尝试中,我指定了具有必要的 boost 版本的存储库。

before_install:
  - sudo add-apt-repository -y ppa:nschloe/boost-nightly
  - sudo apt-get update -qq
install:
  - sudo apt-get install libboost-all-dev
  # - sudo apt-get install libboost1.64-all-dev (also tried)

在第一种情况下,安装了默认的 boost 版本 (1.54)。 在第二种情况下,结果是相同的错误消息:找不到包 libboost1.64-all-dev

在第三次尝试中,我手动输入了安装 boost 的说明:

install:
  - sudo wget -O boost_1_64_0.tar.gz http://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.gz/download
  - sudo tar xzvf boost_1_64_0.tar.gz
  - cd boost_1_64_0/
  - sudo ./bootstrap.sh --prefix=/usr/local
  - sudo ./b2
  - sudo ./b2 install 

结果我的脚本用了 30 多分钟就被终止了。 除了 Travis CI 的默认 boost 版本之外,是否有任何简单(或只是有效)的安装方式?

最佳答案

要查看哪些包可用(尤其是当您添加额外的存储库时),您可以运行“apt-cache search”命令,例如:

sudo apt-cache search libboost

然后你可以看到可用的版本。

手动构建时,默认情况下它会构建“所有内容”(所有静态/共享调试/发布库),这会花费大量时间,因此可能会超时。

您可以尝试只构建您实际需要的库,例如:

./bootstrap.sh --with-libraries=program_options,filesystem,system
./b2 link=shared threading=multi variant=release

(详情请看这里:http://www.boost.org/build/doc/html/bbv2/overview/invocation.html)

关于c++ - 如何在 Travis CI 中使用最新的 boost 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45276457/

相关文章:

c++ - 从另一个函数释放指针

c++ - 模板类中的模板构造函数必须在类定义中定义?

git-branch - 如何仅在开发分支中将 travis 工件上传到 S3

c++ - 更改窗口背景颜色

c++:有界数字的异构模板

c++ - boost 序列化: read varying type of data

c++ - boost::static_visitor 未能专门化具有多种不同可能类型的函数模板

c++ - 我怎样才能 boost::bind 到传递并返回 std::string 的托管类的成员?

android - 误报 : junit. framework.AssertionFailedError: EditText is not found

javascript - 特拉维斯上的黑猩猩进行 meteor 测试