Я получаю эту ошибку, я прочитал другую соответствующую должность, но все еще не могу найти решение.
При компиляции я получаю эту ошибку. Я использую opencv framework и свои собственные дополнительные классы 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.
В заголовке 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;
}