Неопределенные символы для архитектуры x86_64 с использованием OpenCV

0

Я получаю эту ошибку, я прочитал другую соответствующую должность, но все еще не могу найти решение.

При компиляции я получаю эту ошибку. Я использую 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.

Теги:

1 ответ

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;
}
  • 0
    спасибо за решение и быстрый ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню