Как указать cmake на конкретный каталог для библиотеки? - PullRequest
20 голосов
/ 11 августа 2011

У меня есть проект CMake, в котором я использую библиотеку, и теперь я хочу протестировать свой код с другой версией этой библиотеки. Я могу установить INCLUDE_DIRECTORIES (и, возможно, позже также ссылки) в следующем примере. Но поскольку я хочу сделать это только временно, я бы хотел вручную установить этот путь с помощью ccmake / cmake-gui.

Как мне это сделать?

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

Ответы [ 2 ]

25 голосов
/ 11 августа 2011

Это должно быть возможно путем установки переменной CMAKE_PREFIX_PATH при настройке вашей сборки. В каталоге вашего проекта создайте каталог test_build и запустите:

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

Установка переменной CMAKE_PREFIX_PATH заставит команду find_package(OpenCV REQUIRED) выбрать вашу установку OpenCV в /home/me/src/opencv и соответственно установить переменные OpenCV_LIBS и OpenCV_INCLUDE_DIR.

В качестве альтернативы вы можете отредактировать файл CMakeCache.txt существующего каталога сборки с помощью редактора графического интерфейса CMake и добавить туда определение CMAKE_PREFIX_PATH. Вы должны заново настроить свой проект.

0 голосов
/ 07 сентября 2018

Использование config в find_package ограничит путь поиска OpenCV_DIR.Это будет использовать конфигурацию cmake, которую opencv генерирует во время сборки, чтобы настроить пути для включения и libs

set(OpenCV_DIR "<cusompath>" CACHE PATH '' ${SHOULD_FORCE_CACHE})
find_package(OpenCV REQUIRED CONFIG)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...