[OpenCv] Static 으로 빌드하여 배포 환경에 맞추기. (별도의 DLL 필요없음)

OpenCv 를 빌드 하고 배포 하려면 배포컴퓨터에 OpenCv를 설치하고 환경 변수를 맞춰 주거나, DLL 들을 함께 배포 하여야 한다.

솔루션 크기도 커지고 여간 불편한것이 아니다.


그래서 다크프로그래머[http://darkpgmr.tistory.com/50] 님의 글을 보고 Static 빌드를 시도해 봤다.

Static 빌드를 하면, 배포 컴퓨터에 별도의 추가 작업 없이 실행이 가능하다.



1. 프로젝트 속성 /MT , /MTd 로 바꾸기 (/MTd 는 디버그 용 이다.)



2. 프로젝트 Path 설정

1) C/C++  ->  General  ->  Additional Include Directories  => [C:\opencv\build\include] 추가

2) Linker  ->  General  ->  Additional Library Directories => [C:\opencv\build\x86\vc11\staticlib] 추가 (x64로 해도 된다.)

3) 3) Linker  ->  Input  ->  Additional Dependencies  => 

[

IlmImfd.lib

libjasperd.lib

libjpegd.lib

libpngd.lib

libtiffd.lib

opencv_calib3d2411d.lib

opencv_contrib2411d.lib

opencv_core2411d.lib

opencv_features2d2411d.lib

opencv_flann2411d.lib

opencv_gpu2411d.lib

opencv_highgui2411d.lib

opencv_imgproc2411d.lib

opencv_legacy2411d.lib

opencv_ml2411d.lib

opencv_nonfree2411d.lib

opencv_objdetect2411d.lib

opencv_ocl2411d.lib

opencv_photo2411d.lib

opencv_stitching2411d.lib

opencv_superres2411d.lib

opencv_ts2411d.lib

opencv_video2411d.lib

opencv_videostab2411d.lib

zlibd.lib

]


staticlib 에 있는 모든 lib 파일을 링크 한다. 역시나 말미에 [d] 는 디버그 용이니 릴리즈 용 구성시 d 를 뺀 리스트를 추가 한다.




추가 

1. Static 구성중 [cvCaptureFromCAM] 접근시 LNK2019 ,,, cap_vfw.obj 관련된 highgui 쪽 에러가 난다면,


#pragma comment(lib, "vfw32.lib")
#pragma comment( lib, "comctl32.lib" )

를 헤더에 추가해 준다.

(원문 : http://stackoverflow.com/questions/13472294/opencv-243-using-static-libs-error-lnk2019)



2. [ error C4996: 'fopen' .... ] 관련 에러가 뜰 경우

 C/C++  ->  Preprocessor  ->  Preprocessor Definitions => (추가) _CRT_SECURE_NO_WARNINGS

를 해준다.




/부록 (릴리즈용 lib 리스트)

IlmImf.lib

libjasper.lib

libjpeg.lib

libpng.lib

libtiff.lib

opencv_calib3d2411.lib

opencv_contrib2411.lib

opencv_core2411.lib

opencv_features2d2411.lib

opencv_flann2411.lib

opencv_gpu2411.lib

opencv_highgui2411.lib

opencv_imgproc2411.lib

opencv_legacy2411.lib

opencv_ml2411.lib

opencv_nonfree2411.lib

opencv_objdetect2411.lib

opencv_ocl2411.lib

opencv_photo2411.lib

opencv_stitching2411.lib

opencv_superres2411.lib

opencv_ts2411.lib

opencv_video2411.lib

opencv_videostab2411.lib

zlib.lib



Yamecoder 야매코더_
C++(oF) 2015.06.03 14:34
Powerd by Tistory, designed by criuce
rss