Cython不识别c ++ 11命令

我使用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

我怎样才能使这个工作?


尝试使用Extensionsetup(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))
链接地址: http://www.djcxy.com/p/23767.html

上一篇: Cython not recognizing c++11 commands

下一篇: Play Framework 2.3.7: Static assets location not working in production