c++11 - 如何使用 travis-ci 使用现代 cmake 构建现代 c++?

标签 c++11 gcc cmake travis-ci

是否可以使用 travis-ci 构建使用 cmake、gcc-6 和 g++-6 的 C++ 应用程序/项目?

最佳答案

配置 travis 使用正确的编译器有点棘手。 可以这样做:

首先,您需要将发行版设置为可信任(travis-ci 支持的最新版本的 ubuntu)并需要 sudo。

dist: trusty
sudo: require

接下来我们设置语言和编译器:

language: cpp
compiler: gcc

到目前为止一切顺利。现在我们可以开始设置 apt install 配置:

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gcc-6
      - g++-6
      - cmake

这会添加新版本构建工具的 ppa 并安装它们。下一步是设置到新 gcc 和 g++ 的链接。 /usr/local/bin之前正在搜索/usr/bin ,这样我们新安装的版本 6 编译器就可以通过 gcc 访问。和g++ 。你的开始script:应该看起来像这样:

script:
    - sudo ln -s /usr/bin/gcc-6 /usr/local/bin/gcc
    - sudo ln -s /usr/bin/g++-6 /usr/local/bin/g++

如果您想验证这些工具的版本,请添加下一行:

    - gcc -v && g++ -v && cmake --version

从这些命令返回的版本如下:

gcc: 6.2.0
g++: 6.2.0
cmake: 3.2.2

基本上就是这样。完整的 .travis.yml 如下所示:

dist: trusty
sudo: required
language:
  - cpp
compiler:
  - gcc
addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gcc-6
      - g++-6
      - cmake
script:
  # Link gcc-6 and g++-6 to their standard commands
  - ln -s /usr/bin/gcc-6 /usr/local/bin/gcc
  - ln -s /usr/bin/g++-6 /usr/local/bin/g++
  # Export CC and CXX to tell cmake which compiler to use
  - export CC=/usr/bin/gcc-6
  - export CXX=/usr/bin/g++-6
  # Check versions of gcc, g++ and cmake
  - gcc -v && g++ -v && cmake --version
  # Run your build commands next

关于c++11 - 如何使用 travis-ci 使用现代 cmake 构建现代 c++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916656/

相关文章:

android - 使用 ADT/Eclipse 为 NDK 设置 C++11 (std::thread)

c++ - Clang vs GCC vs MSVC - 使用大括号括起来的初始化列表来创建用户定义的类型?

c++ - 即使锁定失败,带有 try_to_lock 的 unique_lock 是否应该拥有互斥锁?

linux - 如何链接共享库的特定名称(版本)

ios - 如何为 iOS 构建 DLIB

c++ - "fatal error: cg_config.h: No such file or directory"尝试使用 make 命令时出错

python - ROS:找不到包配置文件

c++ - 嵌套 asio 调用以 __throw_bad_function_call() 结束

c++ - 用于插入的指针包装器

C++11 std::function const 重载歧义