安装海康威视相机SDK后,catkin_make其他项目时,出现“libusb_set_option”错误的解决方法

硬件:雷神MIX G139H047LD 工控机

系统:ubuntu20.04

之前运行某项目时,处于正常状态。后来由于要使用海康威视工业相机(型号:MV-CA013-21UC),便下载了并安装了该相机的SDK,之后运行原本正常的项目,就会出现以下错误:

/usr/bin/ld: …/…/lib/libpcl_io.so.1.8.0: undefined reference to `libusb_set_option’

 由于该错误中出现了 libpcl,错误以为是前期安装编译pcl存在问题,故开始进行pcl1.8.1版本的安装和编译,这个过程中出现了很多error,再全部解决之后,终于pcl编译成功了,

 原本以为这次可以顺利通过项目编译,但是再次出现了“/usr/bin/ld: …/…/lib/libpcl_io.so.1.8.0: undefined reference to `libusb_set_option’”的error,思考之后,觉得可能是海康威视相机SDK导致的该错误。正好看到以下文章,也是解决这个错误,便借鉴了以下文章。

### 错误原因分析 `undefined reference to 'libusb_set_option'` 的错误通常发生在链接阶段,表示编译器无法找到 `libusb_set_option` 函数的定义。这通常是由于缺少必要的库文件或者链接顺序不正确引起的。 根据已有信息[^2],此问题的主要原因是 **未正确安装或配置 `libusb` 库** 或者其开发包 (`libusb-1.0-0-dev`) 缺失。此外,如果项目依赖于其他第三方 SDK(如海康威视相机 SDK),也可能引发类似的冲突[^4]。 --- ### 解决方案 #### 方法一:确认并安装 `libusb` 及其开发包 确保系统已正确安装 `libusb` 和其对应的开发头文件: ```bash sudo apt-get update sudo apt-get install libusb-1.0.0 libusb-1.0-0-dev ``` 执行以上命令后,重新构建项目以验证问题是否解决[^2]。 --- #### 方法二:检查 CMakeLists.txt 配置 在 ROS 或 PCL 项目的 `CMakeLists.txt` 文件中,需显式指定链接 `libusb` 库。例如,在目标链接部分添加以下内容: ```cmake find_package(PkgConfig REQUIRED) pkg_check_modules(LIBUSB REQUIRED libusb-1.0) target_link_libraries(your_target_name ${LIBUSB_LIBRARIES}) include_directories(${LIBUSB_INCLUDE_DIRS}) ``` 其中,`${your_target_name}` 是指代当前正在构建的目标名称。通过这种方式,可以确保编译器能够正确定位到所需的函数实现[^3]。 --- #### 方法三:清理旧版本缓存 有,即使安装了正确的库,仍可能因为之前的编译残留而导致问题。建议删除之前生成的中间产物以及缓存数据后再尝试重建工程: ```bash rm -rf build/ catkin_make clean catkin_make ``` 对于独立 cmake 工程,则可采用如下方式清除临目录: ```bash rm -r CMakeCache.txt CMakeFiles/ cmake . make ``` --- #### 方法四:排查第三方 SDK 干扰 如果有引入额外硬件支持(比如摄像头驱动程序或其他外设接口),则可能存在重复声明相同功能模块的情况。此应仔细阅读相关文档说明,必要卸载不必要的组件来减少潜在干扰源[^4]。 --- ### 总结 综上所述,针对此类链接失败现象可以从以下几个方面入手处理: 1. 安装缺失的基础软件包; 2. 修改构建脚本使其兼容最新环境设置; 3. 清理工作区避免遗留物影响新流程运行效率; 4. 排查是否存在相互竞争的功能插件造成混乱局面发生。 最终目的是让整个工具链清楚知道如何访问所需资源从而顺利完成组装过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太想进步了~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值