安装海康威视相机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导致的该错误。正好看到以下文章,也是解决这个错误,便借鉴了以下文章。

https://blog.csdn.net/qq_40301351/article/details/144818802?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522feb47a6e9229e901500bcd662d336f6f%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=feb47a6e9229e901500bcd662d336f6f&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-144818802-null-null.142^v101^pc_search_result_base7&utm_term=undefined%20reference%20to%20%60libusb_set_option&spm=1018.2226.3001.4187https://blog.csdn.net/qq_40301351/article/details/144818802?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522feb47a6e9229e901500bcd662d336f6f%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=feb47a6e9229e901500bcd662d336f6f&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-144818802-null-null.142^v101^pc_search_result_base7&utm_term=undefined%20reference%20to%20%60libusb_set_option&spm=1018.2226.3001.4187

出现上述error的原因在于:

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

解决方法:

1、查看环境变量配置

echo $LD_LIBRARY_PATH

在终端运行上述命令后,输出:

jiangqiang@jiangqiang:~$ echo $LD_LIBRARY_PATH 

/home/jiangqiang/jiangqiang/wk/livox_ros_driver_ws/devel/lib:/opt/ros/noetic/lib:/opt/MVS/lib/64:/opt/MVS/lib/32:/usr/lib/x86_64-linux-gnu:/opt/MVS/lib/64:/opt/MVS/lib/32:/opt/MVS/lib/64:/opt/MVS/lib/32:/usr/local/cuda-12.3/lib64

 出现了包含“MVS”字母的环境变量,这些代表的是海康威视(Hikvision)MVS(Machine Vision Software)的库路径,而且LD_LIBRARY_PATH 的顺序决定了动态库的查找优先级。位于前面的MVS路径会优先被查找,因此项目原本使用的默认动态库的链接路径/usr/lib/x86_64-linux-gnu无法找到。因此报错。

2、打开bashrc

sudo gedit ~/.bashrc

通过搜索将出现“MVS”的所在语句全部注释掉,同时,在文件末尾添加以下一行:

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

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

3、保存bashrc文件

source ~/.bashrc

4、重新在工作空间中编译,编译能够顺利通过。

注意:以上这种方式存在不足,具体在于:如果这个项目同时需要用到海康威视相机时,通过上述方法会导致相机不可用,这种情况下,还可以在CMakeLists.txt中设置项目的链接路径。

即:在 CMakeLists.txt 中设置链接 libusb 的路径为 /usr/lib/x86_64-linux-gnu

使用 find_package 查找 libusb:

CMake 提供了 find_package 来查找系统安装的库。对于 libusb,可以使用以下代码:

find_package(libusb REQUIRED)

 然后将bashrc里面的有关“MVS”的语句的注释全部取消。

运行项目代码,可以正常运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能之自动驾驶技术体系

自动驾驶技术体系 自动驾驶技术是人工智能在交通领域的重要应用,旨在通过计算机视觉、传感器融合、路径规划等技术实现车辆的自主驾驶。自动驾驶不仅能够提高交通效率,还能减少交通事故和环境污染。本文将深入探讨自动驾驶的技术体系,包括感…

浅谈模组-相机鬼像

一.前言 在成像中,我们常常会遇到肉眼观测的真实世界中,不存在的异常光影出现在画面中,并伴有各种颜色,我们将这个物体称为鬼像。某些鬼像可能会对图像产生美感的体验,但是大多数的鬼像都会对图像的质量以…

vmware虚拟机Ubuntu Desktop系统怎么和我的电脑相互复制文件、内容

1、先安装vmware workstation 17 player,然后再安装Ubuntu Desktop虚拟机,然后再安装vmware tools,具体可以参考如下视频: VMware虚拟机与主机实现文件共享,其实一点也不难_哔哩哔哩_bilibili 2、本人亲自试过了&…

Spring Boot项目中解决跨域问题(四种方式)

目录 一,跨域产生的原因二,什么情况下算跨域三,实际演示四,解决跨域的方法 1,CrossOrigin注解2,添加全局过滤器3,实现WebMvcConfigurer4,Nginx解决跨域5,注意 开发项目…

Oracle JDK、Open JDK zulu下载地址

一、Oracle JDK https://www.oracle.com/java/technologies/downloads/ 刚进去是最新的版本,往下滑可以看到老版本 二、Open JDK的 Azul Zulu https://www.azul.com/downloads/ 直接可以选版本等选项卡

软件测试:1、单元测试

1. 单元测试的基本概念 单元(Unit):软件系统的基本组成单位,可以是函数、模块、方法或类。 单元测试(Unit Testing):对软件单元进行的测试,验证代码的正确性、规范性、安全性和性能…

Leetcode.264 丑数 II

题目链接 Leetcode.264 丑数 II mid 题目描述 给你一个整数 n n n ,请你找出并返回第 n n n 个 丑数 。 丑数 就是质因子只包含 2 2 2、 3 3 3 和 5 5 5 的正整数。 示例1: 输入:n 10 输出:12 解释:[1, 2, 3,…

瑞芯微RV1126部署YOLOv8全流程:环境搭建、pt-onnx-rknn模型转换、C++推理代码、错误解决、优化、交叉编译第三方库

目录 1 环境搭建 2 交叉编译opencv 3 模型训练 4 模型转换 4.1 pt模型转onnx模型 4.2 onnx模型转rknn模型 4.2.1 安装rknn-toolkit 4.2.2 onn转成rknn模型 5 升级npu驱动 6 C++推理源码demo 6.1 原版demo 6.2 增加opencv读取图片的代码 7 交叉编译x264 ffmepg和op…

【Python爬虫(32)】从单飞 to 团战:Python多线程爬虫进化史

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…

C#初级教程(1)——C# 与.NET 框架:探索微软平台编程的强大组合

图片来源: https://www.lvhang.site/docs/dotnettimeline 即梦AI - 一站式AI创作平台 一、历史发展脉络 在早期的微软平台编程中,常用的编程语言有 Visual Basic、C、C。到了 20 世纪 90 年代末,Win32 API、MFC(Microsoft Found…

【接口封装】——13、登录窗口的标题栏内容设置

解释&#xff1a; 1、封装内容&#xff1a;图标、文本内容、宽度 2、ui.iconLabel&#xff1a;在UI文件中的自定义命名 3、引入头文件&#xff1a;#include<qpixmap.h> 函数定义&#xff1a; #pragma once#include <QWidget> #include "ui_TitleBar.h"cl…

DeepSeek全生态接入指南:官方通道+三大云平台

DeepSeek全生态接入指南&#xff1a;官方通道三大云平台 一、官方资源入口 1.1 核心交互平台 &#x1f5a5;️ DeepSeek官网&#xff1a; https://chat.deepseek.com/ &#xff08;体验最新对话模型能力&#xff09; 二、客户端工具 OllamaChatboxCherry StudioAnythingLLM …

web安全:跨站请求伪造 (CSRF)

跨站请求伪造 (CSRF) ​ 跨站请求伪造&#xff08;CSRF&#xff0c;Cross-Site Request Forgery&#xff09; 是一种网络攻击方式&#xff0c;攻击者诱使受害者在未经其授权的情况下执行特定操作。CSRF 利用受害者已登录的身份和浏览器自动发送的认证信息&#xff08;如 Cooki…

前端ES面试题及参考答案

目录 let/const 与 var 的区别?TDZ 是什么? 箭头函数与普通函数的区别?箭头函数能否作为构造函数? 模板字符串的嵌套表达式和标签模板用法? 解构赋值的应用场景及对象 / 数组解构差异? 函数参数默认值的生效条件及暂时性死区问题? 展开运算符(...)在数组 / 对象中…

Windows 图形显示驱动开发-查询 WDDM(3.2) 功能支持和启用

查询 Windows 显示驱动程序模型 (WDDM) 功能的支持和启用。 其中介绍了&#xff1a; 用户模式和内核模式显示驱动程序&#xff08;UMD 和 KMD&#xff09;如何查询 OS&#xff0c;以确定 WDDM 功能在系统上是否受支持和已启用。 OS 如何确定驱动程序是否支持特定的 WDDM 功能…

MySQL InnoDB 存储引擎的索引详解

在 MySQL 中&#xff0c;InnoDB 是最常用的存储引擎&#xff0c;它支持事务、行级锁和外键约束等功能&#xff0c;而索引则是提升数据库查询性能的关键。在 InnoDB 存储引擎中&#xff0c;索引不仅仅是提高查询速度的工具&#xff0c;还是数据库的核心组成部分之一。本文将详细…

基于Spring Boot的RabbitMQ延时队列技术实现

文章目录 基于Spring Boot的RabbitMQ延时队列技术实现延时队列应用场景基本概念实现延时队列添加依赖基础配置配置类设计消息生产者消息消费者 两种TTL设置方式 订单超时关闭实例订单服务消息处理 延迟消息插件安装插件配置延迟交换机 基于Spring Boot的RabbitMQ延时队列技术实…

毕业项目推荐:基于yolov8/yolov5/yolo11的番茄成熟度检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示&#xff1a;功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出&#xff08;xls格式&#xff09;功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

【智能客服】ChatGPT大模型话术优化落地方案

本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权) 目录 一、项目背景 1.1 行业背景 1.2 业务现…

STM32的HAL库开发---单通道ADC采集(DMA读取)实验

一、实验简介 正常单通道ADC采集顺序是先开启ADC采集&#xff0c;然后等待ADC转换完成&#xff0c;也就是判断EOC位置1&#xff0c;然后再读取数据寄存器的值。 如果配置了DMA功能&#xff0c;在EOC位被硬件置1后&#xff0c;自动产生DMA请求&#xff0c;然后DMA进行数据搬运…