首页 文章

OpenCV安装,未解析的外部符号[重复]

提问于
浏览
0

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

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

我已经做了什么:

1-添加包含 Headers 的文件夹 .

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等 . 我唯一能想到的就是libs,但我已经将它们包括在内了 .

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

相关问题