[완료]cmake사용시 경로 설정 에러
첨으로 cmake를 사용하려고 하고 있습니다.
그런데,
----------------------------------------------------------
Looking for C++ include cv.h
Looking for C++ include cv.h - not found
CMake Error at CMakeLists.txt:97 (MESSAGE):
Could not find OpenCV. Please set OPENCV_DIR correctly
-----------------------------------------------------------
위와 같은 에러가 떴습니다. 경로 설정이 잘못된것이란 거겠죠?
그래서 cmakelists.txt 파일을 열어봤습니다.
맨 아래내용은 파일의 앞부분만 발췌한 것입니다.(제 생각에 관련이 있을것으로 생각이 되서...)
일단 3번째 문장인 set(OPENCV_DIR.....) 이게 뭔가 관련 있을 것 같은데 사이트들을 뒤져봐도 이 문장을 어떻게 해석 해야 하는 지 모르겠네요..
그리고 제 컴퓨터에는 C:\OpenCV2.0\include\opencv\cv.h 그리고 cxcore.h 파일 등이 존재하는데
set(OPENCV_includes
${OPENCV_DIR}/cv/include
${OPENCV_DIR}/cxcore/include
${OPENCV_DIR}/otherlibs/highgui)
이 부분도 잘못된거 아닌가 싶어서 나름대로 수정을 해줘봤습니다. 그런데, 에러내용은 변함이 없네요...
고수님들 도와주세요!!!
---------------------------------cmakelists.txt-----------------------------------------------------
project( ACT-CV CXX )
set(JAVA_JDK_DIR CACHE PATH "Path to Java Development Kit")
set(OPENCV_DIR CACHE PATH "Path to OpenCV")
# ---------------------------------------------------------------------------------------------
# common stuff
set(JAVA_includes
${JAVA_JDK_DIR}/include
${JAVA_JDK_DIR}/include/win32)
set(JAVA_linkdirs
)
set(JAVA_libs
)
set(OPENCV_includes
${OPENCV_DIR}/cv/include
${OPENCV_DIR}/cxcore/include
${OPENCV_DIR}/otherlibs/highgui)
set(OPENCV_linkdirs
${OPENCV_DIR}/lib)
set(OPENCV_libs
cv highgui cxcore)
include_directories(
${JAVA_includes}
${OPENCV_includes}
.
./general
)
link_directories(
${JAVA_linkdirs}
${OPENCV_linkdirs}
./Release
./Debug
)
[해결]
일단 질문할 당시에 cmake 매뉴얼을 못찾아서 문제였는데, 매뉴얼을 찾았고 문제도 해결 됬습니다.
set(OPENCV_DIR CACHE PATH "Path to OpenCV")
이 코드에 대한 이해가 부족했네요.
3번째 argument는 Path를 Cmake GUI에서 dialog를 통해 사용자가 직접 패스를 선택할 수 있게 하겠다는 옵션이었습니다.
고로 그 경로가 OPENCV_DIR에 할당 되는 것이구요.
그리고 의심했던데로
set(OPENCV_includes
${OPENCV_DIR}/cv/include
${OPENCV_DIR}/cxcore/include
${OPENCV_DIR}/otherlibs/highgui)
이 부분에서도 문제가 있었네요. 주어진 경로와 달리 실제 디렉토리는 /include/opencv 였기에 cv/include 부분과 cxcore/include 부분을 실제 디렉토리에 맞춰 수정해줬더니 에러가 해결 됬습니다.
댓글 달기