Why do I get this error when using OpenCV? error: undefined reference to `cvCreateFileCapture'
Why do I get this error when using OpenCV? error: undefined reference to `cvCreateFileCapture'
我正在尝试 运行 使用 openCV 编写一个简单的代码,但我一直收到此错误。
error: undefined reference to `cvCreateFileCapture'
error: undefined reference to `cvQueryFrame'
error: undefined reference to `cvReleaseCapture'
据我所知,这些函数是在 'highgui' 组件中定义的,我将其 header 添加到我的代码中,并且还包括它到我的库路径的路径。
INCLUDEPATH += /usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui
我成功使用了'highgui'组件的其他功能,没有任何错误。例如:'cvLoadImage'
此外,我的 IDE 的智能感知一直向我建议这些函数,我认为这意味着我已经正确地包含了库路径。
为什么会出现这些错误?
有关更多信息,我在 linux mint 17.2
上使用 openCV 3.0.0、Qt creator 3.1.1
我正在尝试 运行 的完整简单代码是:
#include <iostream>
#include <highgui.h>
#include <cv.h>
using namespace std;
int main()
{
CvCapture* capture = cvCreateFileCapture("/home/ali/drop.avi");
cvNamedWindow("t2",CV_WINDOW_AUTOSIZE);
IplImage* frame;
while(1)
{
frame = cvQueryFrame(capture);
if(!frame) break;
cvShowImage("t2",frame);
char c = cvWaitKey(33);
if(c==27) break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("t2");
return 0;
}
提前致谢。
您的 openCV 研究来源已过时。那就是老Capi。研究一些文档 here
编辑:此外,按照@berak 的建议使用 cv::Mat 和 cv::VideoCapture
将<cv.h>
替换为<opencv2/core.hpp>
在我的 openCV 安装中,我像这样包含了 highgui <opencv2/highgui.hpp>
我正在尝试 运行 使用 openCV 编写一个简单的代码,但我一直收到此错误。
error: undefined reference to `cvCreateFileCapture'
error: undefined reference to `cvQueryFrame'
error: undefined reference to `cvReleaseCapture'
据我所知,这些函数是在 'highgui' 组件中定义的,我将其 header 添加到我的代码中,并且还包括它到我的库路径的路径。
INCLUDEPATH += /usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui
我成功使用了'highgui'组件的其他功能,没有任何错误。例如:'cvLoadImage' 此外,我的 IDE 的智能感知一直向我建议这些函数,我认为这意味着我已经正确地包含了库路径。
为什么会出现这些错误?
有关更多信息,我在 linux mint 17.2
上使用 openCV 3.0.0、Qt creator 3.1.1我正在尝试 运行 的完整简单代码是:
#include <iostream>
#include <highgui.h>
#include <cv.h>
using namespace std;
int main()
{
CvCapture* capture = cvCreateFileCapture("/home/ali/drop.avi");
cvNamedWindow("t2",CV_WINDOW_AUTOSIZE);
IplImage* frame;
while(1)
{
frame = cvQueryFrame(capture);
if(!frame) break;
cvShowImage("t2",frame);
char c = cvWaitKey(33);
if(c==27) break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("t2");
return 0;
}
提前致谢。
您的 openCV 研究来源已过时。那就是老Capi。研究一些文档 here
编辑:此外,按照@berak 的建议使用 cv::Mat 和 cv::VideoCapture
将<cv.h>
替换为<opencv2/core.hpp>
在我的 openCV 安装中,我像这样包含了 highgui <opencv2/highgui.hpp>