我正在尝试使用cython包装c ++库。 c ++头文件说MyFile.h声明了这样一个类:
class MyClass {
public:
enum MyEnum{
TYPE0 = 0,
TYPE1 = 1,
TYPE2 = 2,
};
MyClass(MyEnum val=TYPE0){
// ...
}
// ...
}
pxd文件包含:
cdef extern from "<MyFile.h>":
cdef cppclass MyClass:
cdef enum MyEnum:
TYPE0 = 0
TYPE1 = 1
TYPE2 = 2
MyClass(MyEnum val=TYPE0) except +
但是cython没有编译它。我该怎么做呢?
答案 0 :(得分:4)
尝试使用命名空间:
cdef extern from "MyFile.h" namespace "MyClass":
cdef enum MyEnum:
TYPE0 = 0
TYPE1 = 1
TYPE2 = 2
或许这也可行:
cdef extern from "MyFile.h":
cdef enum MyEnum "MyClass::MyEnum":
TYPE0 = 0
...