当前位置: 首页 > article >正文

解决海康相机SDK导致 `libusb_set_option` 问题的经验总结

在使用海康相机SDK时,可能会遇到以下问题:


问题描述

当编译某些ROS代码时,出现类似错误:

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


原因分析

安装海康相机SDK后,系统原本的 libusb 依赖会被重新链接到海康SDK指定的路径。
由于 libusb 是许多外设程序的重要依赖库,这种更改可能导致其他设备驱动或程序(例如使用系统默认 libusb 的程序)出现冲突,从而触发上述错误。


解决方法

为了解决 libusb 路径冲突问题,需要手动调整环境变量 LD_LIBRARY_PATH,让系统程序优先使用系统默认的 libusb 版本。

以下是详细步骤:

1. 检查环境变量配置

打开终端,检查当前 LD_LIBRARY_PATH 配置:

echo $LD_LIBRARY_PATH

解决海康SDK与libusb路径冲突问题

在某些情况下,安装海康SDK后,系统中的 libusb 可能与海康SDK中的版本发生冲突,导致其他依赖 libusb 的程序出现问题。以下是解决此问题的步骤:

1. 检查冲突源

如果输出中包含海康SDK的路径,例如 /path/to/hikvision/sdk/lib,这可能是冲突的来源。

2. 修改 ~/.bashrc

为确保优先使用系统默认的 libusb,可以通过调整 ~/.bashrc 配置文件来重新设置 LD_LIBRARY_PATH

在文件末尾添加以下一行:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

说明

/usr/lib/x86_64-linux-gnu 是系统默认的 libusb 路径,根据你的系统架构可能有所不同。如果有多个默认路径,请确保所有可能的系统库路径都在 LD_LIBRARY_PATH 变量中优先级靠前。

3. 应用更改

保存并关闭文件后,在终端执行以下命令使修改生效:

source ~/.bashrc

4. 检查是否解决问题

重新运行导致错误的程序,确认问题是否解决。如果仍有问题,可以检查程序实际加载的 libusb 版本:

ldd /path/to/your/executable | grep libusb

确保输出路径正确

确保输出中显示的路径为 /usr/lib/x86_64-linux-gnu/libusb.so 或系统默认路径,而不是海康SDK的路径。

进一步优化

特定程序设置环境变量

如果你只希望某些程序使用默认的 libusb,可以在运行这些程序时临时设置 LD_LIBRARY_PATH

LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH ./your_program

总结

安装海康SDK后,路径冲突问题可能影响到其他依赖 libusb 的程序。通过调整 LD_LIBRARY_PATH 优先使用系统默认库路径,可以有效解决问题。

希望本文对遇到类似问题的朋友有所帮助!如果你有更好的解决方法,欢迎交流! 😊
在这里插入图片描述


http://www.kler.cn/a/459204.html

相关文章:

  • checked 溢出问题
  • 汇编语言:从键盘输入数字字符,(计算阶乘),以无符号十进制形式输出(分支、循环程序)
  • MySQL 锁那些事
  • GeoTrust True BusinessID Wildcard
  • Android性能优化概述
  • 【从零开始入门unity游戏开发之——C#篇43】C#补充知识——值类型和引用类型汇总补充、变量的生命周期与性能优化、值类型和引用类型组合使用
  • 论文解读 | 《我国桑黄产业发展现状、问题及展望:桑黄产业发展千岛湖宣言》
  • Springboot:后端接收数组形式参数
  • 【漏洞复现】NetMizer 日志管理系统 hostdelay.php 前台RCE漏洞复现
  • Mono里运行C#脚本9—do_mono_image_open
  • STM32-笔记20-测量按键按下时间
  • CGAL windows 安装教程
  • ABAQUS随机多面体骨料再生混凝土细观力学分析
  • 12月30日网络编程
  • MySQL数据库误删恢复_mysql 数据 误删
  • 计算机网络•自顶向下方法:网络应用原理
  • FPGA中EMIO接口的模块引出
  • ZooKeeper注册中心实现
  • 使用 ASP.NET Core wwwroot 上传和存储文件
  • MySQL内存分析常用语句
  • 基本算法——聚类
  • 基于eBPF的微服务网络安全(Cilium 1)
  • spring-boot 日志配置的几种方式
  • 【每日学点鸿蒙知识】Shape描述、全局loading组件、checkbox样式、H5监听键盘收起、弹窗不关闭
  • 利用JavaScript实现猜数字
  • k8S-foundation-_ label、ns