2016-01-31 14 views
5

類似:Travis CI with Clang 3.4 and C++11Travis CI(C++ 14およびLinux)

C++ 14でTravis CIを使用するにはどうすればよいですか?ここで

私たちの現在の.travis.ymlファイルされる:

language: cpp 
compiler: 
- gcc 
- clang 
os: 
- linux 
- osx 
script: 
    make main 

ここでは、それはosxではなくlinuxに取り組んでいます私たちの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 

です。

+0

C++コンパイラはC++ 14をサポートする必要があります。 "g ++ -v"を印刷してみてください。必要に応じて、コードをコンパイルするのに十分なパッケージを追加します。 – Jeff

答えて

10

デフォルトのGCCとクランのバージョンは恐ろしく時代遅れであり、あなたは次のように手動で新しいバージョンをインストールする必要があります:

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 

あなたはthisのようなクランとGCCの複数のバージョンをインストールすることができます。

注:language: cpp場合、TravisCIの恐ろしく、時代遅れCCCXXオーバーライド当たりのセル輸出とは、それが高速ですので、私は、language: genericを使用しています。

私はまた、C++コンパイラはほとんどないg++現実の世界であるので、あなたが

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

を使用することを推奨します。

+4

@PyRulez '* sources'は、11行目の前の'&sources'の「逆参照」です。 '&sources'でマークされたプロパティの下のツリー全体が' * sources'でマークされたプロパティの下にコピーされます。 –

関連する問題