0

可能重复:
OpenCV:链接错误,无法解析外部符号 _cvResize 和 _cvCvtColor
什么是未定义的引用/未解析的外部符号错误,我该如何解决?

我已经尝试了他们网站上的所有教程,以及 stackoverflow 上的解决方案,但我仍然找不到解决方案。

我已经做了什么:

1-添加了包含标题的文件夹。

2-将 lib 文件夹添加到其他 lib 目录

3-将 opencv_core243d.lib 和 opencv_highgui243d.lib 添加到其他依赖项。

我正在尝试编译的代码:

#include <stdio.h>
#include <cv.h>
#include <highgui.h>


int main(int argc, char* argv[])
{
if (argc < 2)
{
    printf("Usage: ./opencv_hello <file.png>\n");
    return -1;
}

    IplImage* img = cvLoadImage(argv[1], CV_LOAD_IMAGE_UNCHANGED);
if (!img)
{
    return -1;
}
cvNamedWindow("display", CV_WINDOW_AUTOSIZE);
    cvShowImage("display", img );

    cvWaitKey(0);        

    return 0;
}

链接器给出了有关未解析符号的错误,例如 cvLoadImage、cvWaitKey 等。我唯一能想到的就是库,但我已经包含了它们。

4

1 回答 1

1

据我了解,您使用的是 OpenCV 2.4

在这种情况下,我想建议使用 C++ 接口。

#include <stdio.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

int main(int argc, char* argv[])
{

if (argc < 2)
{
    printf("Usage: ./opencv_hello <file.png>\n");
    return -1;
}

cv::Mat img = imread(argv[1]);
if (img.empty())
{
   return -1;
}

imshow("display", img);

waitKey(0); <---- cvWaitKey() is a C interface functio, waitKey() - C++

return 0;
}
于 2012-11-23T22:36:35.893 回答