我用Python包装了一个C++类,但是我不能用Cython模块编译任何C++11特性。
单独编译C++时,一切都可以正常编译。但是当我运行下面的setup.py时:
setup(
ext_modules = cythonize(
"marketdata.pyx", # our Cython source
sources=["cpp/OBwrapper.cpp, cpp/OrderBook/orderbook.h, cpp/OrderBook/orderbook.cpp"], # additional source file(s)
language="c++", # generate C++ code
extra_compile_args=["-std=c++11"]
))在我的.pyx文件头中:
# distutils: language = c++
# distutils: sources = cpp/OBwrapper.cpp cpp/OrderBook/orderbook.cpp我收到了一大堆与他们无法识别c++11命令有关的错误,比如'auto‘。
例如:
cpp/OrderBook/orderbook.cpp(168) : error C2065: 'nullptr' : undeclared identifier我怎么才能让它工作呢?
发布于 2016-08-19 20:08:08
尝试使用Extension:setup(ext_modules=cythonize([Extension(...)], ...)。
这个setup.py适用于我(在Debian Linux上):
from setuptools import setup, find_packages, Extension
from Cython.Build import cythonize
from glob import glob
extensions = [
Extension(
'my_proj.cython.hello',
glob('my_proj/cython/*.pyx')
+ glob('my_proj/cython/*.cxx'),
extra_compile_args=["-std=c++14"])
]
setup(
name='my-proj',
packages=find_packages(exclude=['doc', 'tests']),
ext_modules=cythonize(extensions))https://stackoverflow.com/questions/27305343
复制相似问题