Reputation: 10941
Similar: Travis CI with Clang 3.4 and C++11
How does one get Travis CI to work with C++14?
Here is our current .travis.yml
file:
language: cpp
compiler:
- gcc
- clang
os:
- linux
- osx
script:
make main
Here is our 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
It works on osx
, but not linux
.
Upvotes: 9
Views: 3139
Reputation: 4677
The default GCC and Clang versions are horribly outdated, and you'll need to install newer versions manually like this:
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
You can install multiple versions of Clang and GCC like this.
Note: I'm using language: generic
, because if language: cpp
, TravisCI's horribly-outdated CC
and CXX
override per-cell exports and it's faster.
I also recommend you use
$(CXX) -o main $(CXXFLAGS) main.cpp
Because the C++ compiler is almost never g++
in the real world.
Upvotes: 16