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




결과물에 대해서는 아직 테스트를 하지 않았고 용량도 커서 첨부하지 않았다.<

Original Post : http://neodreamer-dev.tistory.com/486

No comments :

Post a Comment