我正在尝试在 Ubuntu 12.04.5 LTS 中编译涉及 Python 和 C++ 的代码,但遇到了这种错误
hammouc@kw13921:~/Documents/mimclib$ make
python setup.py clean
running clean
removing 'build/temp.linux-x86_64-2.7' (and everything under it)
removing 'build'
rm -f -r build dist mimclib.egg-info
rm -f -r /home/hammouc/.local/lib/python2.7/site-packages/mimclib*
python setup.py build_ext --inplace
running build_ext
building 'mimclib.libset_util' extension
creating build
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/mimclib
creating build/temp.linux-x86_64-2.7/mimclib/libsetutil
creating build/temp.linux-x86_64-2.7/mimclib/libsetutil/src
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I -I/usr/include/python2.7 -c mimclib/libsetutil/src/set_util.cpp -o build/temp.linux-x86_64-2.7/mimclib/libsetutil/src/set_util.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’
error: command 'gcc' failed with exit status 1
make: *** [inplace] Error 1
我对 ubuntu 不太熟悉,有谁能帮忙吗?谢谢。
答案1
您可以升级您的编译器,或者只是修改文件setup.py
。
找到以下行:
extra_compile_args=['-std=c++11'])],
并将标志改为-std=c++0x
,这使得它:
extra_compile_args=['-std=c++0x'])],
然后再次运行它,它应该可以正常工作。(使用mimclib 源代码在 github 上)
答案2
编译此程序至少需要 gcc 4.8。请参阅如何安装 gcc-4.8有关如何在 Ubuntu 12.04 上安装它。