2015-02-09 104 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