我有一个带有 C++11 代码的 CPython C++ 模块,但我似乎无法在 travis-ci 上构建

I've got a CPython C++ module with C++11 code, but I can't seem to build on travis-ci

这个项目在我本地的 Ubuntu 12.04 和 Mac OSX 10.10(使用 fink python)机器上运行良好。我似乎无法弄清楚如何配置 .travis.yml 来获取要使用 g++-4.8(4.9 或 5.x)构建的 .cpp 文件也可以。

项目:https://github.com/schwehr/libais

我最近一次失败的尝试:

language: python

python:
  - "2.7"
  - "3.4"

before_install:
  - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
  - sudo apt-get update -qq
  - if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi

install:
  - sudo apt-get install -qq gcc-4.8 g++-4.8
  - python setup.py install

script:
  - python setup.py test 

给出:

gcc -pthread -fno-strict-aliasing -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/opt/python/2.7.9/include/python2.7 -c src/libais/ais_py.cpp -o build/temp.linux-x86_64-2.7/src/libais/ais_py.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]
cc1plus: error: unrecognized command line option ‘-std=c++11’

我的关键部分setup.py:

EXTRA_COMPILE_ARGS = []
if sys.platform in ('darwin', 'linux', 'linux2'):
    EXTRA_COMPILE_ARGS = ['-std=c++11']

AIS_MODULE = Extension(
    '_ais',
    extra_compile_args=EXTRA_COMPILE_ARGS,

谢谢多米尼克。我尝试打印东西,这很有帮助。这让我想到我可以明确地强制 python 使用正确的编译器。这样可以更轻松地了解正在发生的事情。

install:
  - sudo apt-get install -qq gcc-4.8 g++-4.8
  - CC=g++-4.8 python setup.py install

哪个有效。