我有一个带有C 11代码的CPython C模块,但我似乎无法在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,
解决方法:
谢谢Dominic.我尝试打印东西,这很有帮助.这让我觉得我可以得到显式和强制python来使用正确的编译器.这样可以更容易地看到发生了什么.
install:
- sudo apt-get install -qq gcc-4.8 g++-4.8
- CC=g++-4.8 python setup.py install
哪个有效.
标签:python,c11,travis-ci 来源: https://codeday.me/bug/20190628/1316996.html