2017-09-04 196 views
0

我試圖用C++和OpenCV使用我的攝像頭,但我想趁這個錯誤未定義的參考`CV :: VideoCapture :: VideoCapture(INT)

(...):圖像.cpp :(。text + 0x27):undefined引用cv :: VideoCapture :: VideoCapture(int)

(...):Images.cpp :(.text + 0x38):未定義的引用cv :: VideoCapture ::〜VideoCapture()

(...):Images.cpp :(文字$ _ZN2cv6StringD1Ev [_ZN2cv6StringD1Ev] + 0×11):未定義的參考CV ::字符串:: DEALLOCATE()...

我的代碼:

#include <iostream> 
#include <string.h> 
#include "opencv2/core/core.hpp" 
#include "opencv2/opencv.hpp" 
#include "opencv2/videoio/videoio.hpp" 
#include "opencv2/highgui/highgui.hpp" 
#include "opencv2/video.hpp" 
#include "opencv2/imgproc/imgproc.hpp" 

using namespace std; 
using namespace cv; 


int main(int argc, char const *argv[]) 
{ 
    VideoCapture cap(0); 
    return 0; 
} 
+0

的名下你有鏈接的圖書館嗎?你很可能缺少一些。 –

+0

g ++ -o main main.cpp \'pkg-config --cflags --libs' – zindarod

+0

@Frank但我已經包含videoio.hpp(第5行) –

回答

1

你的代碼是不是編譯的原因是你沒有給庫和頭文件的路徑。嘗試使用以下命令編譯代碼。

g++ main.cpp -o main -I <path to opencv header files> -L <path to opencv libraries> -l<name of libraries> 

,如果你使用的是Linux的樣本例子是

g++ main.cpp -o main -I /usr/local/include -L /usr/local/lib -lopencv_core -lopencv_highgui 

在這裏,我假設你的頭文件是/usr/local/include和庫在/usr/local/liblopencv_core是你的庫

+0

但我編譯代碼與其他opencv的文件。只有這個文件的代碼不起作用。無論如何,我會嘗試 –

+0

沒有工作太:/ –

+0

錯誤是否一樣? –