【发布时间】:2019-07-02 12:42:37
【问题描述】:
我正在为具有头/lib 文件的 C++ 库创建 Python 绑定,但是 Pybind11 不会自动转换这个将二维数组作为参数的函数。如何正确转换此参数?
头文件像这样声明这个函数
class __declspec(dllimport) SomeClass {
public:
void function(uint32_t arg1, uint32_t arg2, float matrix[3][3]);
我正在绑定它
py::class_<SomeClass>(m, "_SomeClass", "SomeClass")
.def("function", &SomeClass::function,
py::arg("arg1"), py::arg("arg2"), py::arg("matrix"))
python setup.py bdist_wheel 输出以下内容(注释 function 绑定可以很好地构建轮子)
C:\Users\joona\git\someproject\pybind11\include\pybind11\cast.h(1931,1): error C2664: 'Return pybind11::cpp_function::{ctor}::<lambda_b1f1895366c1273186f52810f5be9d13>::operator ()(Class *,uint32_t ,uint32_t ,float (*)[3]) const': cannot convert argument 4 from 'float *' to 'float (*)[3]' [C:\Users\joona\git\someproject\build\temp.win-amd64-3.7\Release\someproject.vcxproj]
【问题讨论】:
标签: python c++ python-3.x cmake pybind11