我收到此错误,我已阅读其他相关帖子但仍无法找到解决方案。
编译时,我收到此错误。我正在使用opencv框架和我自己的附加c ++类。
Undefined symbols for architecture x86_64:
"Person::detectedPersonInImage(cv::CascadeClassifier, cv::Mat, double, int, int)"
在.mm实现文件中,我正在使用c ++静态方法,如此,
cv::Mat matImage = [image CVMat];
matImage = Person::detectedPersonInImage(cascade, matImage, scale, min_neighbors, max_size);
在Person标题中,
static cv::Mat detectedPersonInImage(cv::CascadeClassifier cascade, cv::Mat image, double scale, int min_neighbors,
int max_size);
在Person.cpp文件中,
static cv::Mat detectedPersonInImage(cv::CascadeClassifier cascade, cv::Mat image, double scale, int min_neighbors,
int max_size)
{
//Work done here.
return image;
}
关于如何解决这个问题的任何想法?
问候,C。
答案 0 :(得分:1)
在Person标题中,您应该有类似这样的内容
class Person { // or struct Person
static cv::Mat detectedPersonInImage(cv::CascadeClassifier cascade, cv::Mat image, double scale, int min_neighbors,
int max_size);
// other things...
}
在Person.cpp文件中,你应该有这样的东西
// no static, add Person::
cv::Mat Person::detectedPersonInImage(cv::CascadeClassifier cascade, cv::Mat image, double scale, int min_neighbors,
int max_size)
{
//Work done here.
return image;
}