首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cython无法识别c++11命令

Cython无法识别c++11命令
EN

Stack Overflow用户
提问于 2014-12-05 06:25:02
回答 1查看 3.2K关注 0票数 11

我用Python包装了一个C++类,但是我不能用Cython模块编译任何C++11特性。

单独编译C++时,一切都可以正常编译。但是当我运行下面的setup.py时:

代码语言:javascript
复制
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文件头中:

代码语言:javascript
复制
# distutils: language = c++
# distutils: sources = cpp/OBwrapper.cpp cpp/OrderBook/orderbook.cpp

我收到了一大堆与他们无法识别c++11命令有关的错误,比如'auto‘。

例如:

代码语言:javascript
复制
cpp/OrderBook/orderbook.cpp(168) : error C2065: 'nullptr' : undeclared identifier

我怎么才能让它工作呢?

EN

回答 1

Stack Overflow用户

发布于 2016-08-19 20:08:08

尝试使用Extensionsetup(ext_modules=cythonize([Extension(...)], ...)

这个setup.py适用于我(在Debian Linux上):

代码语言:javascript
复制
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))
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27305343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档