编译安装libfreenect2时错误问题

在尝试编译安装libfreenect2时遇到关于libusb的依赖问题,尽管已经安装了libusb,但在CMake阶段仍报错。通过修改FindLibUSB.cmake文件中的某些行并注释掉,最终成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原链接:https://community.bwbot.org/topic/189
运行测试平台:小强ROS机器人

在编译安装libfreenect2时出现如下的错误

-- using tinythread as threading library
-- Checking for module 'libusb-1.0>=1.0.20'
--   
CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:367 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:532 (_pkg_check_modules_internal)
  cmake_modules/FindLibUSB.cmake:21 (PKG_CHECK_MODULES)
  CMakeLists.txt:93 (FIND_PACKAGE)

这个错误来自于libusb,但是我已经按照说明安装了libusb,即执行下面的指令

sudo apt-get install libusb-1.0-0-dev

然后我又重新源码安装了最新的libusb,发现还是不行.
最后就把libfreenect2/cmake_modules/FindLibUSB.cmake中的几行注释掉,感觉是在用pkg-config来找库的时候module的名字错了

# - Find libusb for portable USB support
# 
# If the LibUSB_ROOT environment variable
# is defined, it will be used as base path.
# The following standard variables get defined:
#  LibUSB_FOUND:    true if LibUSB was found
#  LibUSB_INCLUDE_DIR: the directory that contains the include file
#  LibUSB_LIBRARIES:  the libraries

IF(PKG_CONFIG_FOUND)
  IF(DEPENDS_DIR) #Otherwise use System pkg-config path
    SET(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${DEPENDS_DIR}/libusb/lib/pkgconfig")
  ENDIF()
  SET(MODULE "libusb-1.0")
  #把下面的几行注释掉  
  #IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
  #  SET(MODULE "libusb-1.0>=1.0.20")
  #ENDIF()
  IF(LibUSB_FIND_REQUIRED)
    SET(LibUSB_REQUIRED "REQUIRED")
  ENDIF()

这样在安装说明文件的方法make就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值