이 작업은 꽤 긴 시간이 걸리므로 커피 한잔과 함께 하는걸 추천한다.
#####1. 설치 준비
CMake 를 다운받아 설치한다.
opencv 를 github 에서 다운로드 한다.(Clone)
이게 근데 2017년 06월 29일 기준으로 버전이 3.2.0 인데 같은 3.2.0 인데 최신버전이 CMake에 버그가 있다.
17-05-20 에 받아논 파일은 그러한 버그가 없다.
opencv-contrib 도 github 에서 다운로드 한다.
Eigen 도 다운로드 받는다.
http://eigen.tuxfamily.org/index.php?title=Main_Page
TBB
#####2. 파일 배치
다운받고 압축을 풀면 디렉토리 구조가 아래와 같을 것이다.
해당 위치에 CMake로 빌드할 폴더인 cmake 도 하나 만들어 주자.
(숨김폴더,하위폴더 생략)
┌ opencv_contrib-master
│ ├ doc
│ ├ modules (A)
│ ├ samples
│ ├ CONTRIBUTING.md
│ ├ LICENSE
│ └ README.md
├ opencv-master
│ ├ 3rdparty
│ ├ apps
│ ├ cmake
│ ├ data
│ ├ doc
│ ├ include
│ ├ modules (B)
│ ├ platforms
│ ├ samples
│ ├ CMakeLists.txt
│ ├ CONTRIBUTING.md
│ ├ LICENSE
│ └ README.md
├ tbb2017_20170604oss
├ cmake
├ tbb2017_20170604oss_win.zip
├ eigen-eigen-5a0156e40feb
├ eigen-eigen-5a0156e40feb.tar.bz2
├ opencv_contrib-master.zip
└ opencv-master.zip
#####3. CMake
CMake 를 켠뒤 아래 사진과 같이 source code 경로와 build 경로를 지정한다.
긜고 Configure 버튼을 클릭한다.
어차피 opencv3.1 이상부터는 x64 만 지원하기 때문에 Visual Studio 14 2015 Win64
버전을 선택하였다.
(다른 Visual Studio 버전을 선택해도 되지만 Win64 옵션이 있는 컴파일러를 선택한다.)
이제 기본 옵션을 설정한다.
BUILD-PERF_TESTS (X) ;할 필요 없음
BUILD_PACKAGE (X) ;빌드가 너무 느려짐
BUILD_IPP_IW (X) ;Release에서 error 유발
WITH_LAPACK (X)
WITH_MATLAB (X)
WITH_OPENMP (O)
WITH_VTK (X)
WITH_TBB (O)
만일 CUDA 또는 OpenCL을 원하지 않는다면 WITH_CUDA 또는 WITH_OPENCL 을 체크 해제 한다.
원한다면 아래의 옵션들을 체크
WITH_CUBLAS
WITH_OPENCL_SVM
마지막으로, OPENCV_EXTRA_MODULES_PATH
에 opencv_contrib-master/modules
의 경로를 넣어준다.
마찬가지로 EIGEN_INCLUDE_PATH
에 eigen-eigen-5a0156e40feb
의 경로를 넣어준다.
설정이 완료 되었으면 다시 Configure 을 클릭한다.
이제 새로운 항목인 TBB_ENV_DIRS
가 생긴다. 다운받은 TBB의 include path 를 넣어준다. (ex : tbb2017_20170604oss/include)
TBB_ENV_LIB
: tbb2017_20170604oss/lib/intel64/vc14/tbb.lib
TBB_ENV_LIB_DEBUG
: tbb2017_20170604oss/lib/intel64/vc14/tbb_debug.lib
TBB_VER_FILE
: tbb2017_20170604oss/include/tbb/tbb_stddef.h
다시 Configure 를 클릭한다.
아래와 같이 빨간 배경이 없어지면 Generate 를 클릭한다. 없어질때 까지 Configure 눌러라.
#####4. Visual studio build
이제 아까 만든 cmake 폴더에 들어가서 OpenCV.sln 을 클릭하여 열어준다.
모든 프로젝트를 다 빌드하는것이 아니라. CMakeTargets/ALL_BUILD
와 CMakeTargets/INSTALL
만을 빌드한다.
ALL_BUILD
부터 빌드한다. 하나로도 실패한다면 잘못 된거다.
실패한다고 당황하지말고 문제를 찾으면 된다.(당황해도 어차피 화난다)
그다음 INSTALL
을 빌드한다.
이제 cmake/install
폴더에 필요한 .h
,.lib
,.dll
들이 생성 되있다.
Release 역시 똑같이 하면 된다.
가능하다면 이 폴더를 정리해서 따로 저장을 하는것을 추천한다.
바로 이렇게!!