Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何使用CMake包含库,然后在源文件中使用尖括号包含其标题?_Macos_Opencv_Cmake_Openni_Nite - Fatal编程技术网

Macos 如何使用CMake包含库,然后在源文件中使用尖括号包含其标题?

Macos 如何使用CMake包含库,然后在源文件中使用尖括号包含其标题?,macos,opencv,cmake,openni,nite,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 ${Op

我使用自制软件安装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} )
安装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\u 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>
致命错误:找不到“XnOpenNI.h”文件
#包括
您应该添加

include_directories($ENV{OPENNI_INCLUDE})
在项目定义之后。这将把OPENNI包含文件的路径作为-I选项添加到编译器中。有关“包含目录”命令的更多信息,请参阅

关于OpenCV_LIBS的起源:

使用“find_package(需要OpenCV)”时,cmake将自动调用FindOpenCV.cmake(在cmake_MODULE_path变量指定的路径中找到)。FindOpenCV.cmake负责实际定位OpenCV库和包含文件,并定义OpenCV_LIBS和一组其他变量


这使它“神奇地”为您所用。有关find_package magic的更多信息,请参见

如果名称空间openni仍然无法识别怎么办?openni库中的类(如设备、openni::initialize()或openni::shutdown())也不是。我不是openni方面的专家,但可能您包含了错误的文件。对于C++接口,您应该包括xncpprasper-h。如果我没有弄错的话。