Cython -STD = C 11错误,使用C和C
Cython -std=c++11 error, using both C and C++
我是Cython的新手,我正在尝试从该项目中编译Cython而没有成功。
使用此setup.py,
from distutils.core import setup, Extension
from Cython.Distutils import build_ext
from distutils.extension import Extension
sources_list = ["timgraph.pyx", "Graph.cpp", "InfGraph.cpp", "sfmt/SFMT.c"]
setup(ext_modules=[Extension("pytim",
sources=sources_list,
language="c++",
extra_compile_args=["-std=c++11"])
],
cmdclass={'build_ext':build_ext})
我运行以下内容:
python setup.py build_ext --inplace
并获取以下错误:
error: invalid argument '-std=c++11' not allowed with 'C/ObjC'
error: command 'clang' failed with exit status 1
我正在运行MacOS High Sierra 10.13.2,Python 3.6.2,Cython 0.27.3和Apple LLVM版本9.0.0,以防万一有帮助。
编辑:我认为也许是尝试同时编译C和C ,因为我可以运行C 的Cython示例,并且效果很好。但是我不知道如何解决extra_compile_args适用于所有来源的事实,包括" sfmt/sfmt.c"。
仅用于记录,解决方案非常简单:完全删除 extra_compile_args
参数,但仍将语言参数设置为 c++
,即。
from distutils.core import setup, Extension
from Cython.Distutils import build_ext
from distutils.extension import Extension
sources_list = ["timgraph.pyx", "Graph.cpp", "InfGraph.cpp", "sfmt/SFMT.c"]
setup(ext_modules=[Extension("pytim",
sources=sources_list,
language="c++")
],
cmdclass={'build_ext':build_ext})
无论出于何种原因,这都成功地编译了C 。
与Python 3.7和3.6.5和Laters遇到了相同的问题...
尝试运行时会出现错误:
pip install python-crfsuite
是从那里的setup.py文件派生的...
错误:
error: invalid argument '-std=c99' not allowed with 'C++/ObjC++'
唯一对我有用的是用Python 3.6.4
运行它转到这里安装3.6.4,然后重试。
或在此处使用conda/anaconda进行
如果您在Python3.7上面临着PKG的问题,并且Mac尝试使用以下方式解决它:
Python位置在Mac OSX
相关文章:
- 模板,函数使用错误的构造函数来复制我的对象
- 使用指向类的指针时 RAM 使用错误
- AddressSanitizer 将 std::vector<T>::p ush_back 标识为释放后堆使用错误的原因
- 带有 NORM 的 ZeroMQ - 地址已在使用 错误被抛出在第二个 .bind() 上 - 为什么?
- Qt Debugger在Mac上使用错误的python版本
- C++类模板使用错误需要模板参数列表
- 为什么在链接时搜索使用错误工具集的提升库?
- 在 JNI 中使用错误的代码将 jbytearray 转换为 char*
- 不允许使用错误类型
- 使用错误代码-1531使用CLI失败连接到DB2
- 用于打印的返回点,已使用错误
- 强制C++不需要的宏使用错误
- C:使用错误:"Compound Assignment"和"Prefix Decrement"在一起
- 映射未声明:首次在函数中使用错误
- C++.对象使用错误的构造函数实例化
- 如何在C++中使用错误控制函数
- 指针使用错误或错误
- 模板化类构造函数在结构中使用错误的重载
- C++:使用错误 C4700 未初始化的局部变量""
- strftime在调用时使用错误的maxsize参数做什么