Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
CMAKE can';我找不到OpenNI_Cmake_Rgb_Kinect_Openni - Fatal编程技术网

CMAKE can';我找不到OpenNI

CMAKE can';我找不到OpenNI,cmake,rgb,kinect,openni,Cmake,Rgb,Kinect,Openni,我一直在尝试使用Kinect库运行“入门教程”(http://nicolas.burrus.name/index.php/Research/KinectUseNestk)但我偶然发现了一个错误 在CLI中尝试以下行时: cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .. 我得到以下错误: CMake Error at D:/Program Files/CMake 2.8/share/cmake-2.8/Modules/FindPackageHan dleSta

我一直在尝试使用Kinect库运行“入门教程”(http://nicolas.burrus.name/index.php/Research/KinectUseNestk)但我偶然发现了一个错误

在CLI中尝试以下行时:

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
我得到以下错误:

CMake Error at D:/Program Files/CMake 2.8/share/cmake-2.8/Modules/FindPackageHan
dleStandardArgs.cmake:91 (MESSAGE):
Could NOT find OpenNI (missing: OPENNI_LIBRARY OPENNI_INCLUDE_DIR)

Call Stack (most recent call first):
D:/Program Files/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardAr
gs.cmake:252 (_FPHSA_FAILURE_MESSAGE)
nestk/cmake/FindOpenNI.cmake:51 (find_package_handle_standard_args)
nestk/cmake/find_nestk_deps.cmake:77 (FIND_PACKAGE)
build/nestk/UseEmbeddedNestk.cmake:23 (INCLUDE)
nestk/CMakeLists.txt:67 (INCLUDE)

有人知道我该怎么解决这个问题吗?我已经安装了OpenNI,它安装在D:\Program Files\OpenNI。

您可以尝试修改CMakeLists.txt文件并添加或修改以下行

set(OPENNI_INCLUDE_DIR "D:/Program Files/OpenNI/Include")
set(OPENNI_LIB_DIR "D:/Program Files/OpenNI/Lib")
否则,请在binaries文件夹中查找名为cmakcache.txt的文件。查找OPENNI_INCLUDE_DIR和OPENNI_LIB_DIR,设置正确的路径,然后再次运行cmake

如果这些都不起作用,并且您可以运行cmake gui,请尝试使用它而不是cli命令,并在gui中手动指定这些路径


我希望有帮助

对于使用CMAKE创建OpenNI项目,您可以在cmakelists中创建它。它很好用。(我还包括NITE2,但如果不需要,只需删除这些行即可)

稍后,您需要链接找到的目录和库:

link_directories( ${OPENNI2_LIBRARY} ${NITE2_LIBRARY} )
INCLUDE_DIRECTORIES( ${OPENNI2_INCLUDE_DIR} ${NITE2_INCLUDE_DIR} )
target_link_libraries( project ${OPENNI2_LIBRARY} ${NITE2_LIBRARY} )

确保OPEN_NI_BIN、OPEN_NI_INCLUDE、OPEN_NI_INSTALL_PATH环境变量都已设置,并且它们指向正确的位置,因为检查OPEN_NI的cmake模块会检查这些值。 我得到了同样的错误,但在我的例子中,混合64位和32位库是一个问题。我用32位编译器构建opencv,但OpenNI是64位的。所以我卸载了所有64位版本,只剩下32位版本,这使它工作正常

亲切问候,,
Daniel

典型的openni2发行版有以下文件/OpenNI-Linux-Arm-2.2/OpenNIDevEnvironment

它描述了编译和链接所需的所有变量:

export OPENNI2_INCLUDE=/opt/cbox/OpenNI-Linux-Arm-2.2/Include
export OPENNI2_REDIST=/opt/cbox/OpenNI-Linux-Arm-2.2/Redist
因此,您需要导出这些变量,然后在启用OpenNI2的情况下运行cmake:

$export OPENNI2_INCLUDE=/opt/cbox/OpenNI-Linux-Arm-2.2/Include
$export OPENNI2_REDIST=/opt/cbox/OpenNI-Linux-Arm-2.2/Redist
$cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_OPENNI2=ON  ..
在cmake result的某个地方,您应该看到:

--OpenNI2:是(版本2.2.0,构建33)

$export OPENNI2_INCLUDE=/opt/cbox/OpenNI-Linux-Arm-2.2/Include
$export OPENNI2_REDIST=/opt/cbox/OpenNI-Linux-Arm-2.2/Redist
$cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_OPENNI2=ON  ..