OpenCV 설치 및 CMake GPU+TBB+IPP 빌드(컴파일)하기

프로그래밍/opencv 2013.10.04 18:02

OpenCV 설치 및 빌드(build)에 대한 간략 튜토리얼입니다.


윈도우즈(windows) 운영체제 환경에서의 설치를 대상으로 하며, cmake를 이용하여 gpu (cuda), tbb, ipp 를 사용하도록 opencv를 다시 build (compile)하는 방법을 설명합니다.


기본적으로 외부 dll 라이브러리를 자신의 visual c++ 프로젝트에 가져다 사용하는 방법은 알고 있다는 전제하에 설명합니다 (include 포함시키고, lib 파일들 포함시키는 것 등).



OpenCV 설치하기


1. OpenCV 다운로드

http://opencv.org/downloads.html에서 자신이 필요한 opencv 버전을 다운로드 받는다. 이 글에서는 현재의 가장 최신 버전인 OpenCV 2.4.6 (윈도우즈 버전)를 예로써 사용한다.


2. OpenCV 설치

다운받은 OpenCV-xxx.exe 파일을 더블클릭하여 적당한 곳에 압축을 풀면 설치가 완료된다. 별도의 추가적인 setup 없이 압축을 푸는 것만으로 설치가 완료된다.


3. OpenCV 사용

설치된 OpenCV 라이브러리를 사용하기 위해 필요한 include, lib, dll 파일들은 다음 위치에 존재한다 (단, OpenCV를 설치한 루트 폴더 경로를 OPENCV_ROOT라고 표기할 경우)

  • 헤더 파일들: OPENCV_ROOT\build\include
  • lib 파일들: OPENCV_ROOT\build\x86\vc9\lib (32비트 시스템 visual studio 2008인 경우)
  • dll 파일들: OPENCV_ROOT\build\x86\vc9\bin (32비트 시스템 visual studio 2008인 경우)

단, lib, dll 파일들은 개발환경이 32비트 시스템인지 (x86), 64비트 시스템(x64)인지에 따라서 그리고, visual studio 버전에 따라서 (visual studio 2008은 vc9, 2010은 vc10, 2012는 vc11) 종류별로 모두 있기 때문에 자신의 개발환경에 맞추어 적절한 것을 사용한다. 예를 들어, 64비트 시스템용 visual studio 2010에서 사용하고자 한다면 OPENCV_ROOT\build\x64\vc10\lib, bin에 있는 파일들을 사용한다. 보통은 32비트 버전을 사용하면 32비트, 64비트 시스템 관계없이 모두 사용할 수 있으니 32비트(x86)용을 사용하면 된다.



CMake를 이용하여 OpenCV를 새로 빌드하기


OpenCV를 설치하면 기본적으로 미리 build된 dll파일들이 제공되지만, 기본 제공되는 dll들에는 gpu나 실행속도 향상을 위한 tbb, ipp와 같은 외부 라이브러리들이 포함되어 있지 않다.


따라서, OpenCV에서 지원하는 외부 라이브러리들을 같이 사용하고 싶으면 CMake를 이용하여 OpenCV를 새로 빌드해야 한다.


(먼저 CMake를 이용하여 OpenCV를 새로 빌드하는 기본적인 과정을 설명한 후, GPU, TBB, IPP를 연동하는 방법을 설명합니다)


1. CMake 다운로드하기

http://www.cmake.org/cmake/resources/software.html에서 CMake의 자신의 시스템에 맞는 binary distribution을 다운로드 받는다 (예: cmake-2.8.11.2-win32-x86.exe)


2. CMake 설치하기

다운로드 받은 파일을 실행하면 일반적인 프로그램 설치 과정을 통해 CMake가 설치된다.



3. CMake 실행 및 설정하기

CMake를 설치하면 윈도우즈 시작버튼 프로그램 그룹에 cmake 폴더가 생성되니 잘 찾아서 CMake (cmake-gui)를 실행한다: 시작버튼>프로그램>CMake 2.8>CMake(cmake-gui)



'Where is the source code'에 설치한 opencv의 루트(root) 폴더 위치를, 'Where to build the binaries'에 새로 build할 opencv를 저장할 폴더 경로명을 넣어준다. 새로 build할 opencv용 폴더는 아무데나 원하는 곳에 새로 하나 만들어 주면 된다. 여기서는 opencv 루트 밑에 mybuild라는 이름으로 새 폴더를 하나 만들었다.


이후 configure 버튼을 눌러준다.


그러면 아래 그림과 같이 사용할 개발환경을 물어보는데 자신의 개발환경에 맞게 설정해 준후 finish 버튼을 누른다 (아래 예에서는 visual studio 2008을 선택).




그러면 아래 그림과 같이 opencv build 구성을 선택적으로 설정할 수 있는 화면이 나타난다.




이제 불필요한 구성요소는 없애고 필요한 요소들만 체크한 후 다시 configure 버튼을 누른다. (참고로 제가 사용하는 기본 구성은 아래와 같습니다)




CMake 설정을 통해 build할 OpenCV의 구성요소 및 빌드 옵션을 선택할 수 있을 뿐만 아니라 OpenCV에서 사용할 외부 라이브러리(CUDE, TBB, IPP, EIGEN, OpenCL 등)도 선택할 수 있다. 물론 외부 라이브러리를 연계하여 빌드하려면 해당 라이브러리는 별도로 다운로드하여 설치해 주어야 한다. CMake 설정 요소중 몇 가지만 설명하면 다음과 같다.

  • BUILD_EXAMPLES: opencv 예제 샘플코드들에 대한 실행파일을 컴파일할지 여부
  • BUILD_PACKAGE: 새로 빌드한 opencv 결과 파일들 전체를 하나의 패키지 형태의 파일로 묶을지 여부 (이걸 하면 무지막지하게 빌드 시간이 오래 걸리니 절대로 하면 안됨)
  • BUILD_SHARED_LIBS: dll 버전으로 빌드할지 static lib 버전으로 빌드할지 여부 (dll 버전으로 빌드할 경우 체크, static lib로 빌드할 경우 체크해제)
  • BUILD_WITH_STATIC_CRT: 콘솔 입출력, 메모리 관리 등의 CRT(C RunTime library) 모듈을 static으로 포함하여 빌드할지 여부 (이걸 포함시키면 visual c++에서 사용하는 CRT와 엄청난 충돌 메시지를 발생시키므로 체크해제)
  • 나머지는 외부 라이브러리를 추가하는 것이므로 본인이 필요한 기능이 있으면 체크해서 빌드 (글 뒷부분 TBB, IPP, GPU 설정 방법 참조)


CMake 설정을 모두 마친 후에는 Generate 버튼을 눌러서 위의 설정이 반영된 Visual C++ 프로젝트를 생성한다 (generate 버튼을 누르면 'where to build binaries' 에 입력한 폴더에 OpenCV라는 이름의 visual c++ 프로젝트가 생성됨).


=> TBB, IPP, GPU(CUDA) 등을 사용하고자 할 때에는 여기서 'generate' 버튼을 누르면 안되고 필요한 관련 설정을 모두 마친후에 generate 버튼을 누릅니다.


4. OpenCV 빌드

프로젝트가 생성된 폴더로 이동하여 생성된 visual c++ 프로젝트 파일(OpenCV.sln)을 열고 Visual C++의 Build Solution (F7)을 이용하여 OpenCV를 빌드한다 (debug, release 모두). 그러면 해당 폴더의 bin\에 dll파일들이, lib\에 lib 파일들이 생성된다. 이제 이렇게 새로 생성된 dll, lib 파일들이 자신이 직접 빌드한 OpenCV 라이브러리인 셈이다. 헤더파일(include)들은 원래 OpenCV 설치하면서 깔렸던 파일들을 그대로 이용하면 된다.



OpenCV + TBB 설정하기


1. TBB(Intel Threading Building Blocks) 다운로드 및 설치

TBB는 병렬처리를 통해 프로그램의 실행속도를 빠르게 해 주는 라이브러리로서 OpenCV에서 TBB를 설정한 경우와 그렇지 않은 경우의 속도 차이는 엄청나다.


먼저, https://www.threadingbuildingblocks.org/download에서 TBB 최신 버전을 다운로드 받는다. 소소코드는 다운받을 필요 없으며 자신의 운영체제에 맞는 binary 버전만 다운로드 받으면 된다.


다운받은 TBB 파일(예: tbb42_20130725oss_win.zip)을 적당한 곳에 압축을 풀면 설치 완료이다 (OpenCV처럼 별도 설치과정 없이 그냥 압축만 풀면 설치 완료이다).


2. CMake에서 TBB 설정하기

먼저 CMake에서 WITH_TBB를 체크하고 Configure 버튼을 누른다.




그러면 TBB_INCLUDE_DIRS라는 새로운 항목이 생기면서 빨간색으로 하일라이트된다.




이곳에 좀전에 다운받아 설치한 TBB의 include 폴더 위치를 넣어준 후 Configure 버튼을 다시 누른다.




그러면 다음과 같이 TBB_LIB_DIR, TBB_STDDEF_PATH가 맞는지 확인해 달라는 화면이 나타나는데 값을 바꿀 필요는 없으며 특별한 이상 없으면 그냥 다시 한번 Configure 버튼만 눌러주면 된다.



그림을 잘 보면 Use TBB:가 처음에는 NO이었다가 YES (ver 4.2 interface 7000)로 바뀐 것을 알 수 있다. 이게 YES로 바뀌었다는 건 설정이 잘 끝났다는 것을 의미한다.


이상으로 TBB 설정은 완료이다.


이후 Generate 버튼을 누르면 TBB가 활성화된 OpenCV 프로젝트가 생성된다.


단, TBB를 연동하여 OpenCV를 빌드한 경우에는 이후 OpenCV를 사용한 프로그램을 실행시키기 위해 반드시 tbb.dll (릴리즈버전), tbb_debug.dll (디버그버전) 파일이 같이 있어야 한다. tbb.dll, tbb_debug.dll 파일의 위치는 TBB를 설치한 폴더 위치를 TBB_ROOT라 했을 때 TBB_ROOT\bin\ia32\vc9 (32비트 시스템에서 visual studio 2008을 사용할 경우)이다. 또는 만일 자신의 개발환경이 64비트 시스템 visual studio 2010이라면 dll 위치는 TBB_ROOT\bin\intel64\vc10 이다.



OpenCV + IPP 설정하기


1. IPP(Intel Integrated Performance Primitives) 다운로드 및 설치

IPP는 인텔 CPU 칩에 최적화된 연산 라이브러리로 이걸 사용하면 OpenCV 처리 속도가 조금 향상된다 (TBB와 함께 사용할 수 있다).


먼저. http://software.intel.com/en-us/intel-ipp에서 IPP를 유료로 구매하거나 또는 무료 30일 평가판을 다운로드 받는다. 30일 평가판을 다운로드 받아도 OpenCV와 연계하여 사용하는 데에는 기간제한 없이 사용할 수 있다.



몇 가지 기본정보를 입력해 주면 이메일로 다운로드 링크를 보내준다.


2. CMake에서 IPP 설정하기

다운받은 IPP를 설치한 후에 CMake에서 WITH_IPP를 체크하고 Configure 버튼을 누른다.




그러면 IPP_H_PATH라는 항목이 나타나는데 이곳에 설치된 IPP의 include 폴더 경로를 넣어준 후 Configure 버튼을 다시한번 눌러준다. 만일 설치된 IPP의 루트 폴더 위치를 IPP_ROOT (ComposerXE-20XX 라는 이름으로 설치됨)라 하면 입력해줘야 할 해당 위치는 IPP_ROOT\ipp\include 이다.



위 그림과 같이 Use IPP가 NO에서 IPP 버전 이름으로 바뀌면 성공이다.


이상으로 IPP 설정은 완료이다.


설치된 IPP의 IPP_ROOT\lib\ia32\ 에 가보면 IPP 라이브러리가 xxx.lib, xxx_l.lib, xxx_t.lib 과 같이 동일한 이름의 3가지 버전으로 제공됨을 볼 수 있는데 첨자가 붙지 않은 xxx.lib는 동적 라이브러리(dynamic lib, dll)용 lib, 첨자가 붙은 xxx_l.lib, xxx_t.lib는 모두 정적 라이브러리(static lib)용 lib이다 (_l과 _t의 차이는 _l은 단일 쓰레드용, _t는 멀티 쓰레드용).


이중 OpenCV에서 사용하는 버전은 xxx_l.lib 로 ippvm_l.lib, ippcc_l.lib, ippcv_l.lib, ippi_l.lib, ipps_l.lib, ippcore_l.lib 이렇게 총 6개의 파일만 사용된다. 즉, OpenCV에서는 IPP를 항상 static 버전(single thread 버전)으로 링크해서 빌드하기 때문에 이후 OpenCV 응용프로그램을 실행할 때 IPP의 dll 파일들을 필요로 하지 않는다.



OpenCV + CUDA 설정하기


1. CUDA 다운로드 및 설치

OpenCV에서 GPU를 사용하기 위해서는 CUDA를 설치해야 한다. CUDA는 nVidia 계열의 그래픽 카드를 위한 GPU 프로그래밍 툴킷이다. 따라서 nVidia 계열이 아닌 그래픽 카드인 경우에는 동작하지 않음을 주의해야 한다 (다른 그래픽 카드는 현재 OpenCV에서 지원하고 있지 않다).


OpenCV에서 GPU를 사용하는 방식은 TBB나 IPP를 사용하는 방식과는 큰 차이가 하나 있다. TBB나 IPP의 경우에는 opencv 함수의 내부 구현에 숨겨져 있어서 opencv의 사용자 입장에서는 TBB, IPP 사용 여부 관계없이 동일한 코딩을 하면 된다. 하지만 GPU의 경우에는 클래스 및 함수들을 GPU 버전으로 별도 구현하고 cv::gpu::라는 namespace로 묶어 놓았다. 따라서, gpu 버전의 구현을 사용하려면 앞에 gpu가 붙은 클래스 명과 함수를 사용해야 한다 (예: cv::gpu::HOGDescriptor hog;).


참고로, OpenCV의 모든 기능이 GPU로 구현되어 있는 것은 아니며 현재는 일부 모듈들만 GPU로 구현되어 제공되고 있으며 계속적으로 GPU 버전의 구현이 추가되고 있다.


먼저, https://developer.nvidia.com/cuda-downloads에서 자신의 개발환경에 맞는 CUDA 툴킷을 다운받아 설치한다. (예: cuda_5.5.20_winvista_win7_win8_general_32.exe)


2. CMake에서 CUDA 설정하기

CUDA를 설치한 후 CMake에서 WITH_CUDA, WITH_CUBLAS, WITH_CUFFT 등을 체크한다 (WITH_CUBLAS, WITH_CUFFT는 선택사항).




또한 CUDA_SDK_ROOT_DIR과 CUDA_TOOLKIT_ROOT_DIR에 CUDA가 설치된 루트 디렉토리 위치 (예: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5)를 설정해 준다.




이후 Configure 버튼을 다시 누르면 아래 그림과 같이 붉은색 항목들이 나타나면서 추가적인 옵션 선택이 가능해진다. 필요한 경우 CUDA_FAST_MATH 등을 체크해 준다.



이후 Configure 버튼을 다시 한번 더 누르면 CUDA 설정이 완료된다 (Use Cuda가 YES로 바뀌었음을 확인).


by 다크 프로그래머


  • 이전 댓글 더보기
  • 나그네 2016.08.02 19:42 신고 ADDR 수정/삭제 답글

    따라하다가 오류가있어 질문드립니다.
    이 솔루션 구성에 대해 빌드하도록 선택된 프로젝트가 없습니다.

    라고 RUN_TESTS 프로젝트부터 빌드가 안됩니다

    • BlogIcon 다크pgmr 2016.08.03 07:18 신고 수정/삭제

      그건, 별개의 문제로 보입니다. "이 솔루션 구성에 대해 빌드하도록 선택된 프로젝트가 없습니다"로 구글에서 검색해 보시기 바랍니다.

  • 프로그래머 2016.08.09 12:23 신고 ADDR 수정/삭제 답글

    위 설명대로 시행하여 폴더에 ALL_BUILD, OpenCV솔루션 , lib폴더 ,include폴더,...등 여러가지 파일이 생겼습니다.
    이렇게 생성 된 후 제가 어떤파일을 열어서 코딩을 하고 빌드를 하면 되나요?
    이 후 어떻게 해야 할지 몰라서 댓글을 달게 되었습니다.

    OpenCV Micro soft VS Solution을 열어서 아무것도 하지 않고(새로운 CPP생성이나 코딩이나 ...) 빌드를 해보았는데 30분 넘게 빌드만 하네요.

    일반적으로 비주얼 스튜디오에서 새 프로젝트 -> CPP파일 생성 -> 코딩을 하는데
    새롭게 파일을 생성하고 Cmake된 파일을 연동 시켜줘야 하나요?

    처음해봐서 모르는게 많네요 죄송합니다.

    • BlogIcon 다크pgmr 2016.08.09 14:32 신고 수정/삭제

      cmake가 자동으로 프로젝트를 생성해 주기 때문에 별도로 프로젝트를 생성하지 않습니다. 생성된 프로젝트 파일인 OpenCV.sIn을 열어서 그대로 빌드하면 됩니다.

  • 신입개발자 2016.08.23 11:00 신고 ADDR 수정/삭제 답글

    http://cafe.naver.com/opencv.cafe?iframe_url=/ArticleRead.nhn%3Fclubid=11534583%26page=1%26menuid=10%26boardtype=Q%26articleid=43599%26referrerAllArticles=false

    여기좀 봐주시면 안될까요? 위와 같이 build 햇는데..

  • 짱구 2016.10.08 16:35 신고 ADDR 수정/삭제 답글

    CMake 빌드 해서 성공 256, 실패 0, 생략 6 이렇게 나왔습니다
    그리고 OpenCV.sin 으로 들어가서 Main함수는 똑같이 비쥬얼 스튜디오 에서 했던거 처럼 똑같이 하면 되는건가요?

    • BlogIcon 다크pgmr 2016.10.08 20:53 신고 수정/삭제

      네, opencv.sin을 열어서 빌드하시면 됩니다.

  • 슬삐 2016.10.28 20:13 신고 ADDR 수정/삭제 답글

    opencv를 통해 surf를 이용하고자 합니다. 비쥬얼스튜디오는 2015 opencv는 3.0 입니다. cmake3.6.2를 실행해서 where is the source code는 opencv sources 폴더를 where to build the binaries는 opencv build 폴더로 설정하고 컨피그를 눌러서 보니 opencv build 구성 체크란이 나오는데 아무리 찾아도 nonfree가 안보입니다. surf가 nonfree에 있는걸로 알고 있는데 nonfree가 안나오는 이유가 뭔지 알 수 있을까요?

    • BlogIcon 다크pgmr 2016.10.28 21:51 신고 수정/삭제

      surf 등과 같은 extra module은 https://github.com/opencv/opencv_contrib 에서 별도로 다운받아서 설치해야 하는 것으로 알고 있습니다.

  • 슬삐 2016.10.29 20:12 신고 ADDR 수정/삭제 답글

    답변 감사합니다. 저도 말씀해주신 사이트 https://github.com/opencv/opencv_contrib 는 들어가서 확인 해봤는데 여기서 모듈에 들어가면 여러가지가 나오는데 그중에는 surf가 보이지 않습니다. 또한 처음 사이트에 들어가면 clone or download가 보여서 다운이 되는거 같은데 나머지는 다운을 어떻게 하는지 알 수 있을까요?
    opencv surf가 꼭 필요한데 아무리 찾아다녀도 보이지 않아 자꾸 질문 드립니다. ㅜㅜ

    • BlogIcon 다크pgmr 2016.10.30 17:49 신고 수정/삭제

      modules/xfeatures2d/src/ 밑에 보면 있습니다..

  • 지나가다가요 2016.12.13 17:30 신고 ADDR 수정/삭제 답글

    오호호호 역시 좋은 글 매번 감사합니다. CUDA가 watershed 알고리즘 잘 지원하는가요? 혹은 왠만한 opencv 함수는 사용가능한가요? ㅎㅎ

    • BlogIcon 다크pgmr 2016.12.15 13:07 신고 수정/삭제

      cuda 쪽은 잘 안써봐서 잘 모르겠습니다.. ^^

  • 지나가다가요 2016.12.13 17:36 신고 ADDR 수정/삭제 답글

    http://adessowiki.fee.unicamp.br/media/Attachments/courseIA366F2S2010/aula10/ijncr.pdf
    칭구하고 싶네용.. 010-5772-1453 카톡 친추 부탁드려요

  • anyzzz 2017.03.16 15:15 신고 ADDR 수정/삭제 답글

    도움 많이 됐습니다. 감사합니다^^

  • 영상처리초짜 2017.03.28 05:30 신고 ADDR 수정/삭제 답글

    안녕하세요 다크프로그래머님 항상 많은 도움주셔서 감사합니다!
    Cmake해서 만들어서 프로젝트에서 빌드하면 자꾸 lib파일을 읽을수 없다고 계속 뜨는데 도저히 오류를 모르겠습니다. 프로젝트 하나하나마다 새로새로 include와 lib를 추가해주어야 되는지요..ㅠㅠ
    다른사람들은 그냥 빌드하면 된다는데, 제 컴이 이상한건지 계속 같은 문제에서 막히네요.. 잘부탁드립니다 .

    • BlogIcon 다크pgmr 2017.03.28 09:30 신고 수정/삭제

      발생한 에러 메시지를 그대로 입력하여 인터넷 검색해 보시길 추천합니다. 그리고 어떤 버전의 opencv를 어떤 환경(vs 버전)에서 빌드하고 있는지와 에러 메시지(구체적으로 어떤 lib 파일이 없다고 나오는지)를 같이 적어주시면 다른 분들의 도움을 받기가 좀더 용이하리라 생각합니다..

  • 궁금한게 있습니다 2017.04.20 03:28 신고 ADDR 수정/삭제 답글

    이 모든 작업 후에 최종적으로 제가 써야 하는 헤더파일은 제가 새로 빌드한 파일인가요 아니면 이렇게 빌드하는 것 만으로 opencv 폴더안에 내부 알고리즘이 수정되어 원래 쓰던 opencv 함수의 include에서 가져다 쓰면 되는건가요?

    • BlogIcon 다크pgmr 2017.04.20 10:39 신고 수정/삭제

      opencv 헤더화일은 변화가 없으니 기존의 include 폴더를 그대로 사용하시면 됩니다.

  • 궁금한게 있습니다 2017.04.20 15:08 신고 ADDR 수정/삭제 답글

    그러면 cmake는 하되 그냥 평소처럼 사용하면 되는건가요? 되게 간편하네요... 감사합니다!!

    • BlogIcon 다크pgmr 2017.04.20 15:21 신고 수정/삭제

      네 그렇습니다. 그리고 꼭 필요한 경우 아니면 cmake도 할 필요없이 다운받은 opencv release 버전을 그대로 사용하시면 됩니다 (release 버전에는 이미 build된 dll 파일들이 포함되어 있습니다)

  • 궁금한게 있습니다 2017.04.20 16:22 신고 ADDR 수정/삭제 답글

    cmake한 폴더를 뒤져보니 안에 .dll파일이 있는데 이 녀석들도 안 쓰는 녀석들인가요?

    • BlogIcon 다크pgmr 2017.04.20 16:31 신고 수정/삭제

      혹시 opencv에서 제공되는 dll 파일들의 사용법을 모르시는 것인지요? 자신의 프로젝트에서 opencv dll 파일들 사용법은 인터넷을 검색해 보시면 어렵지 않게 찾을 수 있을 것입니다. cmake로는 visual studio 프로젝트를 생성하게 되고 생성된 프로젝트를 정상적으로 build하면 dll 파일들이 생성됩니다. 생성된 dll 파일들은 opencv 라이브러리 파일들이니 당연히 사용해야 합니다.

  • 임지현 2017.04.26 15:37 신고 ADDR 수정/삭제 답글

    C:\openCV_LIBRARY\build\CMakeFiles\CMakeTmp\CheckIncludeFile.c(1): fatal error C1083: 포함 파일을 열 수 없습니다. 'stddef.h': No such file or directory [C:\openCV_LIBRARY\build\CMakeFiles\CMakeTmp\cmTC_997fa.vcxproj]



    경고 0개

    오류 1개

    //위와 같은 오류가 발생합니다.ㅜㅜ 어떻게 해결해야 하죠?

    • BlogIcon 다크pgmr 2017.04.26 15:49 신고 수정/삭제

      stddef.h는 visual c++에 있는 파일이기 때문에 아마도 컴퓨터에 visual c++이 설치되어 있지 않거나 이와 관련된 오류로 보입니다. 무책임한 말씀이지만 빌드 과정에서 발생하는 다양한 오류에 대해서는 다른 사람이 알기 어렵고 기본적으로는 스스로 해결하셔야 합니다.

  • 임지현 2017.04.26 16:07 신고 ADDR 수정/삭제 답글

    visual c++2017 버전을 설치하였구요, stddef.h 외에도 여러가지 오류가 발생하는데 이건 visual 관련 오류군요.. 잘 해결해보겠습니다. 감사합니다.

  • 임지현 2017.04.26 16:12 신고 ADDR 수정/삭제 답글

    저 죄송하지만 제가 입문자여서요.. 아래의 해당경로로 가서 파일을 찾아봤는데 오류로 뜨는 저 파일이존재 하지 않을때 저 파일들은 어디서 구할 수 있을까요?
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\include\xmmintrin.h(79): fatal error C1083: 포함 파일을 열 수 없습니다. 'malloc.h': No such file or directory

    • BlogIcon 다크pgmr 2017.04.26 16:32 신고 수정/삭제

      visual c++ 2017은 안써봐서 잘 모르겠습니다. 제가 사용하는 버전은 visual c++ 2013인데, C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include에 가면 stddef.h, malloc.h 등등 파일들이 모두 존재합니다.. 어쨌든 경로 설정의 문제로 보이는데요 먼저 설치하신 cmake가 visual c++ 2017 버전을 지원하는지 여부를 확인해야 할 것 같구요 그외 원인은 제가 사용해보지 못한 버전이라서 알수 없습니다. 요즘 대부분의 문제는 인터넷 검색을 통해 해결할 수 있으니 발생한 에러 메시지로 인터넷 검색도 시도해 보시기 바랍니다. 모든 방법이 해결이 안된다면 이전 버전의 visual c++을 사용하는 것도 한 방법이라고 생각됩니다.

  • 잼난이 2017.06.08 17:22 신고 ADDR 수정/삭제 답글

    이분은 정말 아낌없이 주는 나무... 저또한 감사드립니다.

  • 초롱아빠 2017.09.18 23:15 신고 ADDR 수정/삭제 답글

    안녕하세요? 좋은 정보 감사합니다.
    CMake 3.8.2를 인스톨해서 OpenCV 3.2 버전을 빌드했습니다.
    그런데 OpenCV 3.3 버전을 빌드할려고...
    제어판/프로그램 삭제에서 CMake를 삭제하고...
    CMake 3.9.2를 인스톨해서 OpenCV 3.3 버전을 빌드했습니다.

    CMake Configure 버튼을 클릭하면...아래와 같은 에러인지 뭐인지 발생합니다.
    CMake 삭제를 제대로 못 해서 그런것인지 ...
    CMake를 제대로 삭제할려면 어떻게 삭제를 하고 .. 새로 인스톨해야 하는지요?

    아래 에러 내용.
    CMake Deprecation Warning at CMakeLists.txt:81 (cmake_policy):
    The OLD behavior for policy CMP0020 will be removed from a future version
    of CMake.

    The cmake-policies(7) manual explains that the OLD behaviors of all
    policies are deprecated and that a policy should be set to OLD only under
    specific short-term circumstances. Projects should be ported to the NEW
    behavior and not rely on setting a policy to OLD.


    CMake Deprecation Warning at CMakeLists.txt:85 (cmake_policy):
    The OLD behavior for policy CMP0022 will be removed from a future version
    of CMake.

    The cmake-policies(7) manual explains that the OLD behaviors of all
    policies are deprecated and that a policy should be set to OLD only under
    specific short-term circumstances. Projects should be ported to the NEW
    behavior and not rely on setting a policy to OLD.


    CMake Deprecation Warning at CMakeLists.txt:94 (cmake_policy):
    The OLD behavior for policy CMP0026 will be removed from a future version
    of CMake.

    The cmake-policies(7) manual explains that the OLD behaviors of all
    policies are deprecated and that a policy should be set to OLD only under
    specific short-term circumstances. Projects should be ported to the NEW
    behavior and not rely on setting a policy to OLD.

    • BlogIcon 다크pgmr 2017.09.19 08:30 신고 수정/삭제

      그건 저도 잘 모르겠습니다(전 3.3 버전은 빌드해본 경험이 없습니다). 출력된 메시지로 봤을 때, 앞으로는 cmake에서 더 이상 지원하지 않을 예정이기 때문에 권장되지 않는기능을 opencv에서 사용한 것 같습니다. 에러 메시지가 아니라 경고(warning) 메시지라서 빌드자체는 될 것 같은데.. 진행이 안되나요? 원인이나 해결책은 저도 모릅니다.

  • 초롱아빠 2017.09.19 08:35 신고 ADDR 수정/삭제 답글

    먼저 회신에 감사드립니다. 제가 좀 더 연구해 보겠습니다.
    즐거운 하루 되시구요.

    감사합니다.

  • SUPERSAM 2018.04.05 15:17 신고 ADDR 수정/삭제 답글

    안녕하세요~~ cmake 에서 OpenCV_DIR 에는 어떤 경로를 넣어주어야 하나요??

    • BlogIcon 다크pgmr 2018.04.06 01:13 신고 수정/삭제

      opencv가 위치한 폴더를 넣어주면 됩니다(opencv 루트 폴더 밑의 sources 폴더 선택). 그런데, OpenCV_DIR이라는 것이 따로 있나요? Where is the source code: 여기에서 opencv 폴더를 선택해 주면 되는 것으로 기억되는데요..