opencv 错误“未定义对cvCreateFileCapture的引用”

3gtaxfhh  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(350)

我正在学习有关OpenCV的教程,但在构建项目时,显示了一条错误消息:

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

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

    cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE);
    CvCapture* capture = cvCreateFileCapture("code.avi");
    IplImage *frame;

    while (1) {
        frame = cvQueryFrame(capture);
        if (!frame)
            break;
        cvShowImage("Example2", frame);
        char c = cvWaitKey(33);
        if (c == 27)
            break;
    }

    cvReleaseCapture(&capture);
    cvDestroyWindow("Example2");

    return 0;
}

错误消息如下:

...undefined reference to cvCreateFileCapture
...undefined reference to cvQueryFrame
...undefined reference to cvReleaseCapture

我使用的是Ubuntu 14.04(Trusty Tahr)和Eclipse

58wvjzkj

58wvjzkj1#

您可能忘记了命令编译器链接提供这些函数的库。库的名称可能取决于您使用的OpenCV版本。对于OpenCV 3.0,尝试链接lib videoio
您可以通过使用OpenCV库安装文件夹中的grep cvSomeFunction *.so来确定哪个库提供了您的函数。为了更加确定,请执行nm someOpenCVLib.so | grep cvSomeFunction并查看“T”输出,它告诉您该库提供了此函数:

00013570 T cvSomeFunction

相关问题