如何使用CMake包含一个库,然后在源文件中使用斜角括号包含其标题?

时间:2015-04-03 00:35:50

标签: macos opencv cmake openni nite

我使用自制软件来安装opencv和openni以及nite。

我已经设法为opencv创建了一个cmake文件,并且它已经为它的目录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} )

安装toktakke's build openni和nite之后。 我给了它一个镜头,并扩展到以下,再次我不知道我在哪里找到这些别名到他们的目录。

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 个答案:

答案 0 :(得分:1)

您应该添加

include_directories($ENV{OPENNI_INCLUDE})
项目定义后

。这将添加OPENNI包含文件的路径作为编译器的-I选项。有关&#39; include_directories&#39;的更多信息命令是here

关于OpenCV_LIBS的来源:

当&#39; find_package(OpenCV REQUIRED)&#39;如果使用,cmake将自动调用FindOpenCV.cmake(在CMAKE_MODULE_PATH变量指定的路径中找到)。 FindOpenCV.cmake负责实际定位OpenCV库并包含文件,并定义OpenCV_LIBS和一堆其他变量。

这使它&#34;神奇地&#34;适合你。有关find_package magic的更多信息,请参阅CMake docs