我正在学习有关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。
1条答案
按热度按时间58wvjzkj1#
您可能忘记了命令编译器链接提供这些函数的库。库的名称可能取决于您使用的OpenCV版本。对于OpenCV 3.0,尝试链接lib videoio。
您可以通过使用OpenCV库安装文件夹中的
grep cvSomeFunction *.so
来确定哪个库提供了您的函数。为了更加确定,请执行nm someOpenCVLib.so | grep cvSomeFunction
并查看“T”输出,它告诉您该库提供了此函数: