Vik*_*tor 5 c++ boost travis-ci
我试图以boost 1.64多种方式在Travis CI环境中进行安装。但是他们都没有成功。在我的第一次天真尝试中,我只是在travis脚本中添加了以下行:
install:
- sudo apt-get install libboost1.64-all-dev
Run Code Online (Sandbox Code Playgroud)
结果是错误消息:找不到软件包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)
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,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
Run Code Online (Sandbox Code Playgroud)
结果,我的脚本花费了30多分钟,然后被终止。除了默认的Boost版本以外,是否有任何简单(或仅可行)的方法将其安装到Travis CI?
预编译Boost
这是我按照以下步骤进行操作的步骤:
在启动板上搜索,直到找到最近针对该trusty环境构建的boost软件包。这是不平凡的,但有从当前保持PPA mhier称为libboost-latest
我发现可以.travis.yml正确配置 ppa以使其平凡无奇,因此我在下面提供了一个有效的代码段,希望该代码段可以帮助其他遇到相同问题的人。
以下适用于clang和gcc:
language: cpp
dist: trusty
sudo: false
os: linux
matrix:
include:
- env: COMPILER=g++-6 BUILD=Debug STANDARD=14
compiler: gcc
addons:
apt:
update: true
sources:
- sourceline: 'ppa:mhier/libboost-latest'
- ubuntu-toolchain-r-test
packages:
- g++-6
- boost1.67
- env: COMPILER=g++-6 BUILD=Release STANDARD=14
compiler: gcc
addons:
apt:
update: true
sources:
- sourceline: 'ppa:mhier/libboost-latest'
- ubuntu-toolchain-r-test
packages:
- g++-6
- boost1.67
# the rest of your yaml file...
Run Code Online (Sandbox Code Playgroud)
希望mhier将使该ppa运行一段时间,否则,您将必须执行步骤1或提供自己的ppa。随着增强版本号的进展,软件包号将更改,因此请检查ppa页面以使软件包名称保持最新。
完整的工作示例可以在 monstar github项目中找到。
从源代码 编译增强功能尽管也存在超时的风险,但是您也可以在travis构建中从源代码编译增强功能。有关说明,请参见boost的最佳做法手册的第 12条
要查看所有可用的软件包(尤其是在添加额外的存储库时),可以运行“ apt-cache search”命令,例如:
sudo apt-cache search libboost
Run Code Online (Sandbox Code Playgroud)
然后,您可以看到可用的版本。
手动构建时,默认情况下会构建“所有内容”(所有静态/共享的调试/发布库),这将花费大量时间,因此可能会超时。
您可以尝试仅构建实际需要的库,例如:
./bootstrap.sh --with-libraries=program_options,filesystem,system
./b2 link=shared threading=multi variant=release
Run Code Online (Sandbox Code Playgroud)
(有关详细信息,请参见此处:http : //www.boost.org/build/doc/html/bbv2/overview/invocation.html)
| 归档时间: |
|
| 查看次数: |
2145 次 |
| 最近记录: |