2012-11-20 4 views
7

64 비트 vs10 콘솔 응용 프로그램에서 openCV243 정적 라이브러리를 사용하려고합니다. 내 OS는 win7 64 비트입니다.openCV 243 정적 라이브러리 사용 오류 LNK2019

내가 포함 한 다음 libs가 :

#pragma comment(lib,"../final_test/libs/staticlib/opencv_core243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_highgui243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_imgproc243.lib")  
#pragma comment(lib,"../final_test/libs/staticlib/opencv_video243d.lib")   
#pragma comment(lib,"../final_test/libs/staticlib/opencv_flann243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_features2d243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_objdetect243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_core243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_calib3d243.lib")  
#pragma comment(lib,"../final_test/libs/staticlib/opencv_legacy243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_features2d243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_ml243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/libjpeg.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/libpng.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/libtiff.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/libjasper.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/zlib.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/IlmImf.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_videostab243") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_contrib243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_nonfree243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_photo243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_stitching243.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/IlmImf.lib") 
#pragma comment(lib,"../final_test/libs/staticlib/opencv_ts243.lib") 

런타임 라이브러리는 다음과 같습니다 다중 스레드 (/ MT)

내가 연결 오류를 다음 얻을.

1>opencv_highgui243.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol AVIFileInit referenced in function "void __cdecl icvInitCapture_VFW(void)" ([email protected]@YAXXZ) 
1>opencv_highgui243.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol AVIStreamGetFrameOpen referenced in function "public: virtual bool __cdecl CvCaptureAVI_VFW::open(char const *)" ([email protected][email protected]@[email protected]) 
1>opencv_highgui243.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol AVIStreamInfoA referenced in function "public: virtual bool __cdecl CvCaptureAVI_VFW::open(char const *)" ([email protected][email protected]@[email protected]) 
1>opencv_highgui243.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol AVIFileGetStream referenced in function "public: virtual bool __cdecl CvCaptureAVI_VFW::open(char const *)" ([email protected][email protected]@[email protected]) 
1>opencv_highgui243.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol AVIFileOpenA referenced in function "public: virtual bool __cdecl CvCaptureAVI_VFW::open(char const *)" ([email protected][email protected]@[email protected]) 
1>opencv_highgui243.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol AVIStreamGetFrame referenced in function "public: virtual bool __cdecl CvCaptureAVI_VFW::grabFrame(void)" ([email protected][email protected]@UEAA_NXZ) 
1>opencv_highgui243.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol ICClose referenced in function "protected: void __cdecl CvCaptureCAM_VFW::closeHIC(void)" ([email protected][email protected]@IEAAXXZ) 
1>opencv_highgui243.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol ICSendMessage referenced in function "protected: void __cdecl CvCaptureCAM_VFW::closeHIC(void)" ([email protected][email protected]@IEAAXXZ) 

...

사람이이 문제를 제거하는 데 도움이 수 있습니까? 고맙습니다.

+0

"highgui"lib를 포함하지 않으면 컴파일됩니까? – Niko

+0

도움이 될 수도 있습니다 : http://stackoverflow.com/questions/849238/how-can-i-resolve-error-lnk2019-unresolved-external-symbol – Niko

+0

의견을 보내 주셔서 감사합니다. 불행히도, highgui가 없으면 프로젝트가 컴파일되지 않습니다. – user1043413

답변

13

MS vfw32.lib 라이브러리와 연결해야합니다.

+2

또한 comctl32.lib가 필요합니다. –

+0

이 작업을 수행하는 방법에 대한 도움이 더 필요합니까? –

+0

@ChaiNadig는 furqan 또는 VC++ 2010 Express에서 프로젝트 속성 (Alt-F7) -> 구성 속성 -> 링커 -> 입력과 같이 pragma를 추가합니다. 추가 종속성 값인 < 편집 ... >의 드롭 다운 메뉴를 클릭하고 위의 라이브러리 파일 목록을 붙여 넣으십시오. 별도의 줄에는 vfw32.lib와 comctl32.lib, % OPENCV_DIR % \ build \ x86 \ vc10 \ staticlib의 libs도 있습니다. – sastanin

5

ur 헤더 파일에서이 작업을 수행하십시오. 완벽하게 작동해야합니다.

#include "opencv2/opencv.hpp" 
#pragma comment(lib, "vfw32.lib") 
#pragma comment(lib, "comctl32.lib") 
+0

64 비트에서도 작동합니까? – tzippy

+0

예, 작동하지 않아도됩니다. – furqan

+0

그래서 링크해야하는 64 비트 버전이 없습니까? 또는이 파일들이 자동으로 내 system32 폴더에 64 비트입니까? 나는 64 비트 윈도우 7을 돌리고있다. 내가 가지고있는 문제는 64 비트로 컴파일 된 이후로,'cv : VideoCapture :: readMat (CV_OUT Mat & image)'는 비어있는'cv :: Mat' – tzippy