find_package openni 出错解决方法

find_package openni 出错解决方法



1.ORB_SLAM2 实战中http://www.cnblogs.com/gaoxiang12/p/5161223.html,编译安装pangolin出现了一系列的oepnni相关问题。
解决方法:由于openni为optional dependencies 所以可以考虑注释掉 openni依赖,文件路径 pangolin/src/CmakeLists.txt


2.用openni驱动kinect1时,find_package 无法找到openni package
原因分析:

find_package()包括 module模式和config模式

module 模式会在module 路径下查找FindOpenNI.cmake,首先搜索${CMAKE_MODULE_PATH}中的所有路径,然后搜索自带.cmake即 <CMAKE_ROOT>/share/cmake-2.8/Modules,本系统为/usr/share/cmake-2.8/Modules。如果没有找到文件,则进入config模式。

Config 模式,继续搜索<Name>config.cmake 或<low-case-name>config.cmake文件,这两个文件是安装库自动安装的。

find_package(OpenNI),在module模式和config模式没有找到相关文件。

解决方法:

1) 新建kinect_test\cmake_modules\FindOpenNI.cmake 

CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) #CMAKE版本要求
MESSAGE(STATUS "USING BUNDLED FindOpenNI.cmake ...")
FIND_PATH(OPENNI_INCLUDE_DIR NAMES XnCppWrapper.h
    PATHS
    /usr/include/ni 
  )

FIND_LIBRARY(OPENNI_LIBRARY_DIR NAMES OpenNI
     PATHS
     /usr/lib
   )

2)编辑kinect_test\src\CmakeLists.txt

CMAKE_MINIMUM_REQUIRED(VERSION2.8)#设定版本  
#增加opencv的依赖  
FIND_PACKAGE(OpenCV REQUIRED)  
  
#添加头文件和库文件   
LIST(APPENDCMAKE_MODULE_PATH${PROJECT_SOURCE_DIR}/cmake_modules)  
find_package(OpenNI REQUIRED)
IF(OPENNI_INCLUDE_DIRANDOPENNI_LIBRARY_DIR)  
MESSAGE(STATUS"FoundOpenNIlib")  
INCLUDE_DIRECTORIES(${OPENNI_INCLUDE_DIR}  )  
MESSAGE(STATUS"includediris"${OPENNI_INCLUDE_DIR})  
MESSAGE(STATUS"libdiris"${OPENNI_LIBRARY_DIR})  
ADD_EXECUTABLE(kinect_testkinect_test.cpp)  
TARGET_LINK_LIBRARIES(kinect_test  
    ${OpenCV_LIBS}  
    ${OPENNI_LIBRARY_DIR})    
ENDIF(OPENNI_INCLUDE_DIRANDOPENNI_LIBRARY_DIR) 


Reference:

http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/

http://blog.csdn.net/dbzhang800/article/details/6329314




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值