gpt4 book ai didi

python - Cython 无法识别 c++11 命令

转载 作者:太空狗 更新时间:2023-10-29 20:27:26 24 4
gpt4 key购买 nike

我正在用 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

我怎样才能让它工作?

最佳答案

尝试使用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))

关于python - Cython 无法识别 c++11 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27305343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com