2017-09-04 7 views
0

私はC++やOpenCVのを使用して自分のウェブカメラを使用しようとしているが、私は(...)このエラーに未定義の参照:: VideoCapture :: VideoCapture(int型)

をgettinのよ:画像.cpp :(。テキスト+ 0x27):cv :: VideoCapture :: VideoCapture(int)への未定義参照

(...):Images.cpp :(。テキスト+ 0x38):未定義のcv :: VideoCapture ::〜VideoCapture()

(...):Images.cpp :(テキスト$ _ZN2cv6StringD1Ev [_ZN2cv6StringD1Ev] + 0x11を):CV :: Stringに未定義の参照:: 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> 

サンプル例あなたは

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

ここで私はあなたのヘッダファイルを想定していますされてLinuxを使用している場合は/usr/local/includeにあり、ライブラリは/usr/local/liblopencv_coreであるあなたのライブラリーの名前です

+0

しかし、私は他の人とopencvのファイルをコンパイルします。このファイルのみがコードが機能しません。とにかく私は試してみます –

+0

あまりにもうまくいきませんでした:/ –

+0

エラーは同じですか? –