YOLO-Darknet-opencv3升级Opencv4出现问题error while loading shared libraries: libopencv_highgui.so.3.4: can

博客讲述了作者遇到Darknet运行时错误,提示缺少libopencv_highgui.so.3.4库。通过检查确认是由于未链接到新安装的opencv4.1。作者执行`make clean`和`make`重新编译darknet后,问题得到解决,无需修改源码。

问题一:

error while loading shared libraries: libopencv_highgui.so.3.4: cannot open shared object file

我们首先查看当前库文件是否是缺少的:

ldd darknet

看到确实,是缺少的,所以我们目前判断是因为没有链接到我新的opencv4.1

我尝试去更新链接的库文件的修改,发现并没有改变

后面我突然想起了,我更新了opencv,但是我没有对darknet进行重新的make编译,之后我直接执行

make clean
make

重新编译之后,再查看,问题解决,darknet可以正常运行,也并没有出现网上他们说的需要去修改源码,需要修改因为opencv升级带来的问题代码,我一点都没改。

<think>嗯,用户遇到了缺少libopencv_core.so.405的问题,想要运行rknn_yolo_demo程序。首先,我需要理解这个问题的背景。libopencv_core是OpenCV的核心库,版本号405可能对应的是OpenCV 4.5.x版本。用户可能安装了其他版本的OpenCV,导致版本冲突或者库文件缺失。 根据提供的引用内容,特别是引用[1]中提到的方法,用户可以通过查找系统中的现有库文件,然后创建符号链接来解决类似问题。但用户的问题是关于libopencv_core.so.405,而引用中提到的例子是libopencv_highgui.so.405,所以类似的方法可能适用。不过需要确认用户是否已经安装了OpenCV 4.5.x版本,或者是否安装路径有误。 另外,引用[2]指出安装路径不能和OpenCV源码路径相同,否则会导致编译错误。这可能提示用户在安装新版本的OpenCV时需要注意安装路径的选择,避免冲突。而引用[3]中的警告信息表明系统中存在多个版本的OpenCV库,可能引发兼容性问题。用户的问题可能也是由于版本冲突导致的,需要确保系统中安装的OpenCV版本一致。 接下来,用户需要安装正确的OpenCV版本或者修复现有的安装。可能的解决方案包括:通过包管理器安装OpenCV 4.5.x,或者从源码编译安装指定版本,并正确设置环境变量。此外,创建符号链接可能临时解决问题,但长期来看,确保版本一致更可靠。 还需要考虑用户的环境,比如是否使用Ubuntu或其他Linux发行版,是否有root权限,是否已经安装了其他版本的OpenCV导致冲突。例如,在Ubuntu中,可以通过apt安装OpenCV,但版本可能较旧,需要添加第三方仓库获取较新版本。或者用户可能需要从源码编译,这时候需要注意安装路径和配置选项,避免与现有版本冲突。 另外,用户提到运行的是rknn_yolo_demo程序,这可能依赖于特定的OpenCV版本。需要确认该程序是否明确要求OpenCV 4.5.x,如果是,可能需要卸载其他版本,或者通过环境变量指定库的路径,确保程序加载正确的版本。 最后,用户可能需要更新动态链接库缓存,使得系统能够找到新安装的库文件。这可以通过执行ldconfig命令完成,或者在~/.bashrc中添加LD_LIBRARY_PATH环境变量。</think>### 分步解决方案 #### 1. 确认OpenCV版本与依赖 首先检查程序`rknn_yolo_demo`明确需要的OpenCV版本。如果要求OpenCV 4.5.x,需通过以下方式验证当前系统是否已安装: ```bash pkg-config --modversion opencv ``` 若输出非4.5.x版本(如3.2或3.3),则需要安装4.5.x[^3]。 #### 2. 安装OpenCV 4.5.x **方法一:通过包管理器安装(推荐)** 适用于支持apt的Ubuntu/Debian系统: ```bash sudo add-apt-repository ppa:opencv/opencv_4.5 sudo apt update sudo apt install libopencv-core4.5 ``` **方法二:源码编译安装** 若包管理器无4.5.x版本: ```bash git clone -b 4.5.5 https://github.com/opencv/opencv.git cd opencv mkdir build && cd build cmake -D CMAKE_INSTALL_PREFIX=/usr/local/opencv45 .. make -j$(nproc) sudo make install # 注意安装路径不能与现有OpenCV冲突[^2] ``` #### 3. 修复符号链接(临时方案) 如果已安装但未正确链接: ```bash # 查找库文件 find / -name "libopencv_core.so.405" 2>/dev/null # 假设找到路径为 /usr/local/opencv45/lib sudo ln -s /usr/local/opencv45/lib/libopencv_core.so.405 /usr/lib/ sudo ldconfig # 更新动态链接库缓存 ``` #### 4. 环境变量配置 若多版本共存,需指定路径: ```bash export LD_LIBRARY_PATH=/usr/local/opencv45/lib:$LD_LIBRARY_PATH # 永久生效则添加至 ~/.bashrc echo &#39;export LD_LIBRARY_PATH=/usr/local/opencv45/lib:$LD_LIBRARY_PATH&#39; >> ~/.bashrc ``` #### 5. 验证修复 重新运行程序或检查库链接: ```bash ldd /path/to/rknn_yolo_demo | grep opencv_core # 输出应显示正确路径的libopencv_core.so.405 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_40749043

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

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

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

打赏作者

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

抵扣说明:

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

余额充值