2011/01/18
OpenCV 2.2 + Intel TBB 를 VS2010 에서 컴파일하기(32/64비트 분리)
얼마전 공개가 된 OpenCV 2.2 버전을 TBB 와 결합하여 컴파일을 해 보았다.
컴파일 하는 방법은 지난 번에 올리 글에서 소개한 방법과 다르지 않다.
준비 사항
컴파일
컴파일 하는 방법은 지난 번에 올리 글에서 소개한 방법과 다르지 않다.
요약하여 정리하면 다음과 같다.
준비 사항
- OpenCV 2.2 소스 (OpenCV-2.2.0-win.zip 다운로드)
- CMake 2.8.3 설치파일 (cmake-2.8.3-win32-x86.exe 다운로드)
- Intel TBB (tbb30_20101215oss_win.zip 다운로드)
- Visual C++ 2010 Compiler
컴파일
- CMake 를 설치한다.
- 임의의 위치에 OpenCV 소스를 x86과 x64폴더에 각각 풀어 놓는다.
- F:/Dev/OpenCV/VC2010_TBB
- 임의의 위치에 Intel TBB 소스를 풀어 놓는다.
- F:/Dev/OpenCV/VC2010_TBB
- CMake (cmake-gui) 를 실행한다.
- CMake source code 경로와 binaries 경로에 각각의 platform 에 맞는 경로를 입력또는 설정한다.
- x86 : F:/Dev/OpenCV/VC2010_TBB/x86
- x64 : F:/Dev/OpenCV/VC2010_TBB/x64
- 변수 목록 하단의 Configure 를 클릭 하고 각각의 platform 에 맞는 컴파일러를 설정한다.
- x86 : Visual Studio 2010
- x64 : Visual Studio 2010 Win64
- 변수 목록 중에서 WITH_TBB 를 설정하고 다시 한 번 Configure 한다.
- TBB_INCLUDE_DIR 항목이 붉은색으로 나오는데 이 항목에 TBB include 경로를 설정하고 Configure 한다.
- F:/Dev/OpenCV/VC2010_TBB/tbb30/include
- TBB_LIB_DIR 항목이 붉은색으로 나오는데 이 항목에 각각의 platform 에 맞는 경로를 설정하고 Configure 한다.
- x86 : F:/Dev/OpenCV/VC2010_TBB/tbb30/lib/ia32/vc10
- x64 : F:/Dev/OpenCV/VC2010_TBB/tbb30/lib/intel64/vc10
- 붉은 색으로 표시되는 항목이 없느면 Generate 를 클릭하여 솔루션(.sln) 파일을 생성한다.
- 각각의 platform 의 OpenCV 경로에 생성된 OpenCV.sln 파일을 열어서 컴파일 한다.
- 필요에 따라 아래 방법에 따라 x86과 x64의 라이브러리를 분리 한다.
x86 과 x64 용 라이브러리 분리한다.
표현이 잘 못된 것 같기도 한데 x86과 x64용 .lib 파일과 .dll 파일을 구분되도록 컴파일 하는 것이다. 그러면 OpenCV 를 사용하는 32비트 프로그램과 64비트 프로그램을 같은 경로에 놓고 사용할 수 있다.
x64 platform 안에 있는 모든 .vcxproj 파일 중에서 ALL_BUILD 와 INSTALL 파일을 제외하고 .vcxproj 파일 안에 포함되어 있는 내용중 TargetName 과 .lib 파일에 대하여 32비트(x86)과 구분지어 지도록 수정을 하면 된다.
이 작업에서 64비트(x64)용에는 TargetName 과 .lib 파일명의 뒤에 x64 를 붙여 구분하도록 작업을 하였다. 아래의 내용이 변경 작업을 한 내용이며 굵은 글씨가 추가된 내용이다.
Debug 의 경우
opencv_calib3d220d_x64</TargetName>
opencv_contrib220d_x64</TargetName>
opencv_core220d_x64</TargetName>
opencv_createsamplesd_x64</TargetName>
opencv_features2d220d_x64</TargetName>
opencv_flann220d_x64</TargetName>
opencv_gpu220d_x64</TargetName>
opencv_haartrainingd_x64</TargetName>
opencv_haartraining_engined_x64</TargetName>
opencv_highgui220d_x64</TargetName>
opencv_imgproc220d_x64</TargetName>
opencv_legacy220d_x64</TargetName>
opencv_ml220d_x64</TargetName>
opencv_objdetect220d_x64</TargetName>
opencv_performanced_x64</TargetName>
opencv_traincascaded_x64</TargetName>
opencv_ts220d_x64</TargetName>
opencv_video220d_x64</TargetName>
opencv_calib3d220d_x64.lib
opencv_contrib220d_x64.lib
opencv_core220d_x64.lib
opencv_createsamplesd_x64.lib
opencv_features2d220d_x64.lib
opencv_flann220d_x64.lib
opencv_gpu220d_x64.lib
opencv_haartrainingd_x64.lib
opencv_haartraining_engined_x64.lib
opencv_highgui220d_x64.lib
opencv_imgproc220d_x64.lib
opencv_legacy220d_x64.lib
opencv_ml220d_x64.lib
opencv_objdetect220d_x64.lib
opencv_performanced_x64.lib
opencv_traincascaded_x64.lib
opencv_ts220d_x64.lib
opencv_video220d_x64.lib
Release 의 경우
opencv_calib3d220_x64</TargetName>
opencv_contrib220_x64</TargetName>
opencv_core220_x64</TargetName>
opencv_createsamples_x64<TargetName>
opencv_features2d220_x64</TargetName>
opencv_flann220_x64</TargetName>
opencv_gpu220_x64</TargetName>
opencv_haartraining_x64</TargetName>
opencv_haartraining_engine_x64</TargetName>
opencv_highgui220_x64</TargetName>
opencv_imgproc220_x64</TargetName>
opencv_legacy220_x64</TargetName>
opencv_ml220_x64</TargetName>
opencv_objdetect220_x64</TargetName>
opencv_performance_x64</TargetName>
opencv_traincascade_x64</TargetName>
opencv_ts220_x64</TargetName>
opencv_video220_x64</TargetName>
opencv_calib3d220_x64.lib
opencv_contrib220_x64.lib
opencv_core220_x64.lib
opencv_createsamples_x64.lib
opencv_features2d220_x64.lib
opencv_flann220_x64.lib
opencv_gpu220_x64.lib
opencv_haartraining_x64.lib
opencv_haartraining_engine_x64.lib
opencv_highgui220_x64.lib
opencv_imgproc220_x64.lib
opencv_legacy220_x64.lib
opencv_ml220_x64.lib
opencv_objdetect220_x64.lib
opencv_performance_x64.lib
opencv_traincascade_x64.lib
opencv_ts220_x64.lib
opencv_video220_x64.lib
Labels:
Intel TBB
,
OpenCV
,
OpenCV 2.2
,
TistoryOldPost
,
Visual Studio 2010
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment