C++ 无法使用c+编译cython+;

C++ 无法使用c+编译cython+;,c++,python,compiler-construction,cython,C++,Python,Compiler Construction,Cython,我尝试在上运行cython示例 我基本上只是复制了Rectangle.h、Rectangle.cpp、setup.py和rect.pyx中的代码 然而,当我跑的时候 python setup.py build_ext--inplace 我得到了错误 running build_ext building 'rect' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototyp

我尝试在上运行cython示例 我基本上只是复制了Rectangle.h、Rectangle.cpp、setup.py和rect.pyx中的代码 然而,当我跑的时候 python setup.py build_ext--inplace 我得到了错误

running build_ext
building 'rect' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c rect.c -o build/temp.linux-x86_64-2.7/rect.o
In file included from rect.c:235:0:
Rectangle.h:1:1: error: unknown type name ‘namespace’
Rectangle.h:1:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
rect.c:236:15: fatal error: ios: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
我做错了什么???

矩形。h:1:1:错误:未知类型名称“名称空间”

<> >代码>命名空间< /代码>仅由C++编译器识别。我猜您打算使用g++而不是gcc编译器。将构建扩展更改为使用g++并且为了清晰起见,将文件重命名为rectangle.cpp

rectangle.h:1:1:错误:未知类型名称“namespace”


<> >代码>命名空间< /代码>仅由C++编译器识别。我猜您打算使用g++而不是gcc编译器。将您的BuffdEXT更改为使用G++,为了清晰起见,将文件重命名为矩形。在您的StupU.Py脚本中,CPP

< P>将该语言设置为EXTHOLL模块

中的C++。
...
ext_modules=[
    Extension("rect",
    sources=["rect.pyx"],
    language="c++",
    )]

setup(
  name = 'rect',
  ext_modules = cythonize(ext_modules),
)

Cython现在将调用正确的C++编译器

在您的StupU.Py脚本中,将语言设置为ExtExpUs4/P>中的C++
...
ext_modules=[
    Extension("rect",
    sources=["rect.pyx"],
    language="c++",
    )]

setup(
  name = 'rect',
  ext_modules = cythonize(ext_modules),
)

Cython现在将调用正确的C++编译器< /P>我的文件被称为矩形L.CPP如何更改为g++?在运行setup.py时,我试图添加--compiler=g++作为参数,但我得到了一个错误:不知道如何使用“g++”编译器在“posix”平台上编译C/C++代码您的文件名为Rectangle.cpp?那么如何从错误消息中解释这一点呢<代码>在rect.c:235:0:@JonathanLindgren包含的文件中查看此问题:在

setup.py
中,您应该使用
os.environ
设置环境变量,以告知要使用哪个编译器。rect.c可能是cython生成的文件,因此它不是我创建的(调用.c是因为我使用了此处指出的错误编译器)。现在它似乎可以工作了,谢谢!(但我必须说这真的很糟糕,cython/c++教程中没有对此进行解释,或者我在什么地方错过了它?)我的文件名为Rectangle.cpp?如何更改为g++?在运行setup.py时,我试图添加--compiler=g++作为参数,但我得到了一个错误:不知道如何使用“g++”编译器在“posix”平台上编译C/C++代码您的文件名为Rectangle.cpp?那么如何从错误消息中解释这一点呢<代码>在rect.c:235:0:@JonathanLindgren包含的文件中查看此问题:在
setup.py
中,您应该使用
os.environ
设置环境变量,以告知要使用哪个编译器。rect.c可能是cython生成的文件,因此它不是我创建的(调用.c是因为我使用了此处指出的错误编译器)。现在它似乎可以工作了,谢谢!(但我必须说,这真的很糟糕,cython/c++教程中没有对此进行解释,或者我在什么地方错过了它?)