opencv: error while loading shared libraries问题的解决

ARM 开发板运行程序:error while loading shared libraries: …/…/lib/libopencv_core.so: cannot open shared object file: No such file or directory的解决

好不容易交叉编译好opencv和qt,且已经将需要的库都移植到arm板(已搭建最小系统板)上,将编译好的程序拷到板子上运行时,出现:error while loading shared libraries: …/…/lib/libopencv_core.so: cannot open shared object file: No such file or directory
参考其他博客,明白问题的所在是opencv的库没有配置好,

  1. 常规做法是:

修改/etc/ld.so.conf文件,有些系统没有这个文件,而是/etc/id.so.conf.d目录,这时在目录下新建一个opencv.conf文件,在文件末尾添加:

yourOpencvPath/lib

比如我的就是/usr/local/arm/opencv-arm/lib。
然后在终端下:

ldconfig

保存退出,然后修改/etc/profile,末尾添加:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
<
### 解决共享库加载错误 当遇到 `./main` 报错 `'error while loading shared libraries: libopencv_core.so.410: cannot open shared object file: No such file or directory'` 时,这通常意味着系统无法找到所需的动态链接库文件。以下是几种可能的解决方案: #### 检查环境变量配置 确保 `LD_LIBRARY_PATH` 环境变量包含了 OpenCV 库所在的路径。可以通过命令行设置此变量: ```bash export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/opencv/lib ``` 如果希望永久生效,则可以将上述语句加入到 `.bashrc` 或者 `/etc/profile.d/` 中的一个脚本里[^1]。 #### 验证库的存在位置 确认实际安装目录下确实存在版本号匹配的目标 so 文件。对于当前情况来说就是查找是否存在名为 `libopencv_core.so.410` 的文件。如果没有发现该文件,可能是由于安装过程中出现了问题或者使用的不是预期版本的 OpenCV[^2]。 #### 更新缓存并重新扫描依赖关系 有时即使设置了正确的路径,也需要更新系统的共享库缓存才能使更改生效。运行以下命令来刷新缓存: ```bash sudo ldconfig ``` 另外还可以通过 `-r` 参数查看具体的解析过程以帮助诊断问题所在: ```bash ldd /path/to/executable ``` #### 安装缺失的软件包 如果是新环境中首次部署应用程序,那么很可能缺少必要的开发工具链或者是特定版本的OpenCV本身。此时应该考虑使用包管理器(如 apt-get, yum)去获取官方发布的预编译二进制包或是自行下载源码按照说明文档完成构建工作[^3]。 #### 版本兼容性检查 考虑到不同项目之间可能存在 API 变更的情况,在更换了第三方组件之后务必仔细核对其接口定义是否一致以及是否有额外的要求被引入进来。比如这里提到的是 `so.410` 而不是其他编号形式,因此要特别留意所选 SDK 是否支持目标平台上的应用需求[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值