使用OpenCV的架构x86_64的未定义符号

时间:2014-03-10 04:42:19

标签: c++ ios objective-c

我收到此错误,我已阅读其他相关帖子但仍无法找到解决方案。

编译时,我收到此错误。我正在使用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。

1 个答案:

答案 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;
}