C++ travisci与C++;14和Linux

C++ travisci与C++;14和Linux,c++,makefile,continuous-integration,c++14,travis-ci,C++,Makefile,Continuous Integration,C++14,Travis Ci,类似的: 如何让Travis CI使用C++14 这是我们当前的.travis.yml文件: language: cpp compiler: - gcc - clang os: - linux - osx script: make main 这是我们的makefile # Factor Pro # Macros CXXFLAGS = -Os -std=c++14 # Rules all::main main: main.cpp g++ -o main $(CXXF

类似的:

如何让Travis CI使用C++14

这是我们当前的
.travis.yml
文件:

language: cpp
compiler:
 - gcc
 - clang
os:
 - linux
 - osx
script:
    make main
这是我们的
makefile

# Factor Pro

# Macros
CXXFLAGS = -Os -std=c++14

# Rules
all::main

main: main.cpp
    g++ -o main $(CXXFLAGS) main.cpp

clean:
    rm -rf *.o main

它适用于
osx
,但不适用于
linux

默认的GCC和Clang版本已经非常过时,您需要手动安装更新的版本,如下所示:

language: generic
os: osx
matrix:
  include:
    - os: linux
      env: COMPILER_NAME=gcc CXX=g++-5 CC=gcc-5
      addons:
        apt:
          packages:
            - g++-5
          sources: &sources
            - llvm-toolchain-precise-3.8
            - ubuntu-toolchain-r-test
    - os: linux
      env: COMPILER_NAME=clang CXX=clang++-3.8 CC=clang-3.8
      addons:
        apt:
          packages:
            - clang-3.8
          sources: *sources
您可以安装多个版本的Clang和GCC

注意:我使用的是
language:generic
,因为如果
language:cpp
,TravisCI的
CC
CXX
会覆盖每个单元格的导出,而且速度更快

我也建议你使用

    $(CXX) -o main $(CXXFLAGS) main.cpp

<>因为在现实世界中C++编译器几乎从来没有代码> G++< /C>。你需要忍受C++编译器支持C++ 14。尝试打印“g++-v”。如有必要,添加一个足以编译代码的包。@PyRulez
*sources
是对第11行上一个
&sources
的“反向引用”——标记为
&sources
的属性下的整棵树被复制到标记为
*sources
的属性下。