我正在关注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
答案 0 :(得分:0)
您可能只是忘记命令编译器链接提供这些功能的库。执行的库的名称可能取决于您使用的OpenCV版本。对于OpenCV 3.0,请尝试链接lib videoio 。
通过在安装了OpenCV库的文件夹中使用grep cvSomeFunction *.so
,您可以安全地找出哪个库提供了您的功能。为了更加确定,请执行nm someOpenCVLib.so | grep cvSomeFunction
并查看“T”输出,该输出告诉您库提供此功能:
00013570 T cvSomeFunction