2011-08-11 6 views
13

나는 라이브러리를 사용하는 CMake 프로젝트를 가지고 있으며 이제는 다른 버전의 라이브러리로 내 코드를 테스트하려고한다. 아래 예제에서 INCLUDE_DIRECTORIES를 설정하고 나중에 링크 할 수도 있습니다. 하지만이 작업을 일시적으로하고 싶기 때문에 수동으로이 경로를 ccmake/cmake-gui로 설정하고 싶습니다.라이브러리의 특정 디렉토리에서 cmake를 가리키는 방법은 무엇입니까?

어떻게하면됩니까?

project(min_example) 
cmake_minimum_required(VERSION 2.8) 

find_package(OpenCV REQUIRED) 
# Without the following line please: 
INCLUDE_DIRECTORIES("/home/me/src/opencv/install/include") 
add_executable(min_example main.cpp) 
target_link_libraries(min_example ${OpenCV_LIBS}) 

답변

21

빌드를 구성 할 때 CMAKE_PREFIX_PATH 변수를 설정해야 가능합니다. 프로젝트 디렉토리에서 test_build 디렉토리를 생성하고 실행

mkdir test_build 
cd test_build 
cmake -DCMAKE_PREFIX_PATH=/home/me/src/opencv/install .. 

find_package(OpenCV REQUIRED) 명령 /home/me/src/opencv에서 OpenCV의 설치를 선택하고 그에 따라 OpenCV_LIBSOpenCV_INCLUDE_DIR 변수를 설정합니다 CMAKE_PREFIX_PATH 변수를 설정.

또는 CMake GUI 편집기를 사용하여 CMakeCache.txt 기존 빌드 디렉토리의 파일을 편집하고 거기에 CMAKE_PREFIX_PATH 정의를 추가 할 수 있습니다. 프로젝트를 다시 구성해야합니다.

+0

작동하지 않습니다. find_package (OpenCV)는 여전히/usr/local /에있는 libs + include를 픽업합니다. 위의 3 줄을 사용했습니다. 어떤 생각이 들지? – Unapiedra

+0

@Unapiedra CMAKE_PREFIX_PATH를 OpenCVConfig.cmake 파일 (아마'/ home/me/src/opencv/install')이있는 집에있는 디렉토리로 설정하십시오. – sakra

+1

감사합니다. 그것은 실제로'.../install/share/OpenCV'입니다.하지만 그렇게합니다! – Unapiedra

관련 문제