我试着运行下面的代码,我得到一个错误。我正在为一个名为"Mat::at"的OpenCV函数创建一个包装器,我正试图让它编译为an。在Ubuntu可信版上使用g++。我列出了我的"。cpp"文件的内容,我的"。hpp"文件,我的错误和下面的编译命令。我将感谢任何帮助返回这个c++ OpenCV函数作为一个C指针。因为这就是我的目标。谢谢你。
错误:
error: cannot convert ‘cv::Point_<int>’ to ‘cv::Point*
{aka cv::Point_<int>*}’ in return
return self->at<Point>(row, col);
(我也得到正常的"控制到达非空函数结束错误")
Cpp:
Point* cv_Mat_at_Point(Mat* self, int row, int col) {
return self->at<Point>(row, col);
}
高压泵:
Point* cv_Mat_at_Point(Mat* self, int row, int col)
编译命令:
g++ -Wall -shared -fPIC -o c-binding.so c-binding.cpp
Edit for RedX:
Point* cv_create_Point(int x, int y) {
return new Point(x, y);
}
应该是return &self->at<Point>(row, col);
,因为函数期望Point*