gpt4 book ai didi

c++ - 使用多个版本的编译器进行构建

转载 作者:IT老高 更新时间:2023-10-28 21:46:09 25 4
gpt4 key购买 nike

如何配置 travis-ci 以便我的项目使用多个版本的编译器构建?

说,我想用 gcc-4.8、gcc-4.9、clang-3.4、clang-3.5 和 clang-3.6 构建它。

我知道如何在 gcc 和 clang 上构建,但不会在多个版本上构建。

为了提供更多背景信息,我的 project是一个 C++ 库,我想确保与那些编译器的兼容性。

最佳答案

弄清楚 Travis CI 什么是可能的/允许的,什么是不可行的,过去(现在仍然是)非常痛苦。我的 current solution看起来像这样:

language: cpp
matrix:
include:
- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-4.8']
env: COMPILER=g++-4.8

- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-4.9']
env: COMPILER=g++-4.9

- os: linux
compiler: gcc
addons:
apt:
sources: ['ubuntu-toolchain-r-test']
packages: ['g++-5']
env: COMPILER=g++-5

- os: linux
compiler: clang
env: COMPILER=clang++

- os: linux
compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.5']
packages: ['clang-3.5']
env: COMPILER=clang++-3.5

- os: linux
compiler: clang
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6']
packages: ['clang-3.6']
env: COMPILER=clang++-3.6

# Activate when 3.7 is released and the repository is available
# - os: linux
# compiler: clang
# addons:
# apt:
# sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7']
# packages: ['clang-3.7']
# env: COMPILER=clang++-3.7

# Activate when we are allowed to use MacOS X
# - os: osx
# compiler: clang
# env: COMPILER=clang++

script:
make CXX=$COMPILER -j3

一些备注:

  • 以上使用基于容器的基础架构
  • 每个容器只安装一个编译器 - 加快构建速度并避免出现问题,因为您通常无法并行安装多个包/编译器
  • 您可以直接设置 CXX,因为 Travis CI 会覆盖它。你需要一个像 COMPILER
  • 这样的中间变量
  • 没有扩展的 clang++ 目前是 Clang 3.4
  • Clang 3.7不可用,但应该很快
  • llvm-toolchain-precise 存储库中的 Clang 3.8(开发版)目前已列入黑名单

(请注意,上述内容会随着时间的推移而改变/改进,现在 (2016-01-11) Clang 3.7 可用,MacOS X 也是如此。以上内容是一个起点,根据需要进行调整)

关于c++ - 使用多个版本的编译器进行构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29312015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com