主要问题:
最近在搞海康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
完事之后就可以正常跑了。
3.其他事项
海康SDK如果出现error code 29 注册失败,查看SDK错误编码规范,要么是环境,要么是账号密码不对,环境问题最多。