Как использовать CMake для включения библиотеки, а затем включить ее заголовки, используя угловые скобки в исходном файле?
Я использовал homebrew для установки opencv, openni и nite.
и мне удалось создать файл cmake для opencv, и каким-то образом у него уже был определенный путь для его каталога OpenCV_LIBS, не знаю, как или где я узнаю об этом.
cmake_minimum_required(VERSION 2.8)
project( main )
find_package( OpenCV REQUIRED )
add_executable( main main.cpp )
target_link_libraries( main ${OpenCV_LIBS} )
После установки токтаке собираем опенни и ните. Я дал этому шанс и распространился на следующее, и снова я не уверен, где я найду эти псевдонимы для их каталогов.
cmake_minimum_required(VERSION 2.8)
project( main )
find_package( OpenCV REQUIRED )
include_directories(${OPENNI_INCLUDE})
Include_directories(${NITE_INCLUDE})
add_executable( main main.cpp)
target_link_libraries( main ${OpenCV_LIBS} ${OPENNI_LIB} ${NITE_LIB} )
но это не было хорошо интегрировано
в .bash_profile
У меня есть следующее:
export OPENNI_INCLUDE="/usr/local/Cellar/openni/1.5.7.10/include/ni"
export OPENNI_LIB="/usr/local/Cellar/openni/1.5.7.10/lib"
export OPENNI_DIR="/usr/local/Cellar/openni/1.5.7.10"
export NITE_INCLUDE="/usr/local/Cellar/nite/1.5.2.21/include/nite"
export NITE_LIB="/usr/local/Cellar/nite/1.5.2.21/lib"
export NITE_DIR="/usr/local/Cellar/nite/1.5.2.21"
Теперь я получаю следующую ошибку:
fatal error: 'XnOpenNI.h' file not found
#include <XnOpenNI.h>
1 ответ
Вы должны добавить
include_directories($ENV{OPENNI_INCLUDE})
после определения вашего проекта. Это добавит путь к включаемым файлам OPENNI в качестве опции -I для компилятора. Подробнее о команде include_directories здесь.
Относительно происхождения OpenCV_LIBS:
Когда используется 'find_package( OpenCV REQUIRED)', cmake автоматически вызывает FindOpenCV.cmake (найденный в пути, указанном в переменной CMAKE_MODULE_PATH). FindOpenCV.cmake отвечает за фактическое нахождение библиотек OpenCV и включает файлы и определяет как OpenCV_LIBS, так и множество других переменных.
Это делает его "волшебным" доступным для вас. Более подробную информацию о магии find_package можно найти в документации по CMake.