2011-08-11 20 views
13

Mam projektu CMake, w którym używam biblioteki, a teraz chcę przetestować mój kod z inną wersją tej biblioteki. Mogę ustawić INCLUDE_DIRECTORIES (i ewentualnie później także połączyć) w poniższym przykładzie. Ale ponieważ chcę to zrobić tylko tymczasowo, chciałbym ręcznie ustawić tę ścieżkę za pomocą ccmake/cmake-gui.Jak wskazać cmake w określonym katalogu dla biblioteki?

Jak to zrobić?

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}) 

Odpowiedz

21

Powinno to być możliwe poprzez ustawienie zmiennej CMAKE_PREFIX_PATH po skonfigurowaniu kompilacji. W katalogu projektu wygenerować katalog test_build i uruchom:

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

Ustawianie zmiennej CMAKE_PREFIX_PATH uczynią komenda find_package(OpenCV REQUIRED) wybrać instalację OpenCV w /home/me/src/opencv i ustawić OpenCV_LIBS i OpenCV_INCLUDE_DIR zmienne odpowiednio.

Można również edytować plik CMakeCache.txt istniejącego katalogu budowania za pomocą edytora interfejsu graficznego CMake i dodawać tam definicję CMAKE_PREFIX_PATH. Musisz wtedy ponownie skonfigurować swój projekt.

+0

To nie działa. find_package (OpenCV) nadal pobiera biblioteki libs + include/usr/local/... Użyłem twoich trzech linii jak podano powyżej. Jakiś pomysł, co jeszcze mógłbym spróbować? – Unapiedra

+0

@Unapiedra Ustaw CMAKE_PREFIX_PATH na katalog w twoim domu zawierający plik OpenCVConfig.cmake (prawdopodobnie '/ home/me/src/opencv/install'). – sakra

+1

Dzięki. To właściwie '.../install/share/OpenCV', ale to robi! – Unapiedra

Powiązane problemy