2015-02-09 99 views
0

我尝试cythonize下面的代码:我不能编译C++代码用Cython

from libcpp.vector import vector 
from libcpp cimport bool 

def test(): 
    cdef vector[bool] = pos(top, 0) 

return 1 

有:

cython test.pyx --cplus -o test.cpp 

然而其结果是:

Error compiling Cython file: 

------------------------------------------------------------ 

... 

from libcpp.vector import vector 
from libcpp cimport bool 

def test(): 
cdef vector[bool] = pos(top, 0) 
      ^
------------------------------------------------------------ 

test.pyx:5:19: Empty declarator 

Error compiling Cython file: 
------------------------------------------------------------ 
... 
from libcpp.vector import vector 
from libcpp cimport bool 

def test(): 
    cdef vector[bool] = pos(top, 0) 
      ^
------------------------------------------------------------ 

我承担我错过了一些简单的使用c++,但我无法弄清楚究竟是什么。任何帮助都将被极大地占用。

+1

我什么都不知道用Cython,但不是你缺少你定义的东西的名称? – Mat 2015-02-09 09:53:10

+1

这是什么'cdef'应该说。对我来说,Python或C/C++都没有意义。 – 2015-02-09 09:55:26

+0

@StephenC'cdef'应该引入c/C++数据类型。 – 2015-02-09 10:19:27

回答

4

你似乎在你的代码2个问题:

  1. vector使用import代替cimport进口。
  2. vector[bool]没有得到名称,只是一个类型定义。

这里的工作代码的例子对我来说:

from libcpp.vector cimport vector 
from libcpp cimport bool 

cdef vector[bool] your_vector 
+0

是的,这是它。我不知道我是如何忽略这一点的。谢谢你指出我。 – 2015-02-09 10:28:52