cmakelist编译完成后使用报错 libopencv_world.so.4.5: cannot open shared object file: No such file or directory

主要问题:
最近在搞海康SDK调用相机,发现在linux下一直调用不起来相机,总是提示error code:29,注册失败,重新编译后又会存在找不到依赖库的问题。

1.异常

CmakeLists编译的动态库.so移动到其他位置后,提示找不到该库的依赖库解决办法,报错信息如下:
在这里插入图片描述
在这里插入图片描述

OSError: libopencv_world.so.4.5: cannot open shared object file: No such file or directory

我编译了一个带opencv的库,还包括其他的库,在编译好的路径下运行,正常,移动到其他位置部署时,提示该问题

2.解决办法

根据百度提示:
在这里插入图片描述
因此,只需要做一步:
将编译后用到的三方库重新设置到环境变量中:
文心一言说的:
设置正确的LD_LIBRARY_PATH:在运行应用程序时,确保将动态库所在的目录添加到LD_LIBRARY_PATH环境变量中。这样,运行时系统就可以找到并加载所需的依赖库:

export LD_LIBRARY_PATH=/path/to/libs:$LD_LIBRARY_PATH

例如,我编译完动态库后,make install了所有我需要的依赖库到alg_lib文件夹中,因此,我需要执行:

export LD_LIBRARY_PATH=/code//alglib/alg_lib/:$LD_LIBRARY_PATH

完事之后就可以正常跑了。

还有一个问题就是关机重启后这个临时变量就失效了,因此我们可以在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次:

vim ~/.bashrc
export LD_LIBRARY_PATH=/code//alglib/alg_lib/:$LD_LIBRARY_PATH

我的习惯是加到 ~/.bashrc 中,在该文件的未尾,可采用如下语句来使设置生效:

3.其他事项

海康SDK如果出现error code 29 注册失败,查看SDK错误编码规范,要么是环境,要么是账号密码不对,环境问题最多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值