##[opencv] 프로젝트 내장 빌드
나는 라이브러리 하면, 컴퓨터에 설치하고 사용하는 방식이 더 좋다고 생각했다.
ex) perl
의 cpan
같은 방식..
그런데 이는 상황마다 다른것 같다. 크기가 좀 있는 프로젝트의 경우, 내장 설치가 가능하다면,
프로젝트 디렉토리내에 라이브러리가 포함되는게 인수자를 위해 좋은것 같다. (이동성도 좋아지고)
http://opencv.org/downloads.html
위 링크에서 Windows용 버전을 받으면 된다.
환경변수 이런거 설치하면 포터블 프로젝트가 되지 않으니, 프로젝트 디렉토리에 위치하도록 한다.
opencv-3.1.0.exe
파일을 실행하면 opencv
라는 폴더가 생성된다.
이를 VS솔루션 폴더에 놓는다.
위와 같은 형식으로 폴더를 넣으면 된다.
VS2015를 기준으로 하며 opencv 3
버전은 VS2015를 지원한다.
빌드를 x64
로 준비하고
프로젝트
-> 옵션
-> 구성속성
-> C/C++
-> 일반
항목에서 추가 포함 디렉터리에
다음을 추가한다.
당연히 Debug/Release
둘다 추가해준다.
../lib/opencv/build/include/
정적 라이브러리는 소스에서 직접 추가하는 방법도 있고
#if defined(_DEBUG) && defined(_WIN64)
#pragma comment(lib,"../lib/opencv/build/x64/vc14/lib/opencv_world310d.lib")
#elif !defined(_DEBUG) && defined(_WIN64)
#pragma comment(lib,"../lib/opencv/build/x64/vc14/lib/opencv_world310.lib")
#else
#error "only build in x64"
#endif
프로젝트 설정에서 추가하는 방법도 있다.
프로젝트
-> 속성
-> 링커
-> 입력
-> 추가 종속성
에
VS2013 Debug : ../lib/opencv/build/x64/vc12/lib/opencv_world310d.lib
VS2013 Release : ../lib/opencv/build/x64/vc12/lib/opencv_world310.lib
VS2015 Debug : ../lib/opencv/build/x64/vc14/lib/opencv_world310d.lib
VS2015 Release : ../lib/opencv/build/x64/vc14/lib/opencv_world310.lib
를 추가하면 된다.
당연히 Release도 추가해준다. (debug용 dll과 구분 유의)
이제 lib\opencv\build\x64\vc14\bin
에서 opencv_world310d.dll
, opencv_world310.dll
을 각각 VS솔루션 폴더의
x64
속의 Debug/Release
에 넣어 두도록 하면 된다.
이제 인터넷에서 아무 이미지나 가져와서 cpp
와 같은 폴더내에 위치 시키고
아래의 코드를 컴파일 해보자.
#include <iostream> //cout
#include<cstdlib> //EXIT_FAILURE
#include <opencv2/opencv.hpp>
int main(){
std::cout << "OpenCV Version : " << CV_VERSION << std::endl;
cv::Mat img;
cv::namedWindow("prj_test", CV_WINDOW_AUTOSIZE);
img = cv::imread("image.jpeg", CV_LOAD_IMAGE_COLOR);
if (img.empty())
{
std::cout << "[!] image load fail" << std::endl;
return EXIT_FAILURE;
}
cv::imshow("prj_test", img);
cv::waitKey(0);
cv::destroyWindow("prj_test");
return EXIT_SUCCESS;
}
추가 포함 디렉토리
../lib/opencv3.0.0/build/include/
링커 추가종속성
../lib/opencv3.0.0/build/x86/vc12/lib/opencv_world300d.lib
../lib/opencv3.0.0/build/x86/vc12/lib/opencv_world300.lib