error while loading shared libraries:解决方法

本文详细介绍了在运行使用OpenCV的项目时遇到的动态库加载失败问题,并提供了具体的解决步骤,包括查找库文件、配置系统文件及更新动态链接库缓存。

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

曾编译一个项目,链接opencv动态库。编译通过但运行可执行文件时如下

error while loading shared libraries:libopencv_highgui.so.3.4:cannot open shared object file: No such file or directory

出现这个情况一般是找没有把库的安装路径配置到系统文件中去

解决方法如下:

查找该文件的安装路径(以我的问题为例)

sudo find / -name "libopencv_highgui.so.3.2*"

得到路径在/usr/local/lib/下

添加路径至配置文件中

cd /etc/ld.so.conf.d/
vim opencv.conf 

在opencv.conf文件中添加之前得到的安装路径至文件中

/usr/local/lib/

后保存退出

执行

sudo ldconfig -v

亲测可用

### 解决 `libQt5Widgets.so.5` 缺失问题 当运行一个依赖 Qt 库的程序时,如果系统提示如下错误: ``` error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory ``` 这意味着系统缺少所需的 Qt 共享库文件。以下是几种有效的解决方法: #### 方法一:安装缺失的 Qt 库 最直接的解决方案是通过系统的包管理器安装相应的库文件。以基于 Debian 的发行版(如 Ubuntu)为例,可以使用以下命令安装 `libQt5Widgets5` 包: ```bash sudo apt update sudo apt install libqt5widgets5 ``` 如果是基于 Red Hat 的系统(如 CentOS 或 Fedora),则可以使用 `yum` 或 `dnf` 来安装: ```bash sudo yum install qt5-qtbase ``` 或者: ```bash sudo dnf install qt5-qtbase ``` #### 方法二:手动下载并安装 Qt 运行时库 如果无法通过包管理器获取所需库,也可以从 [Qt 官方网站](https://www.qt.io/download) 下载完整的 Qt SDK 或单独的运行时库,并按照说明进行安装。 #### 方法三:设置 LD_LIBRARY_PATH 环境变量 如果已将 Qt 库文件放置在某个目录中,但系统未能自动识别,可以通过设置 `LD_LIBRARY_PATH` 来临时指定路径。例如: ```bash export LD_LIBRARY_PATH=/path/to/qt/libs:$LD_LIBRARY_PATH ``` 这样,系统将在指定路径中查找共享库[^1]。 #### 方法四:创建符号链接 有时虽然库文件存在,但由于版本不匹配或路径不对导致无法加载。此时可以尝试创建指向正确库文件的软链接。例如: ```bash sudo ln -s /usr/local/lib/libQt5Widgets.so.5 /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 ``` 请根据实际路径调整上述命令。 #### 方法五:静态编译程序 如果希望避免部署环境中的依赖问题,可以在构建应用程序时选择静态链接 Qt 库。这需要使用 Qt 的静态版本,并在 `.pro` 文件中配置: ```qmake QT += core gui widgets CONFIG += staticlib ``` 然后重新编译项目,生成的可执行文件将包含所有必要的库文件,无需额外安装 Qt 运行时[^4]。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值