-1

我使用自制软件安装 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 的 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>
4

1 回答 1

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 文档中找到

于 2015-04-05T14:01:41.540 回答