目的
在树莓派下出现这个问题 (xxx.so ) cannot open shared object file: No such file or directory.
首先要明确Linux查找的动态库(共享库so)的顺序,
1. -Wl,-rpath-link
2. 查找是否存在环境变量 LD_LIBRARY_PATH(它是一个以冒号分隔的库文件搜索目录列表)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:xxxx
3. 查看库高速缓存文件 /etc/ld.so.conf
4. 查找默认路径/lib和/usr/lib
针对于此
可以通过 ldd 当前运行的可执行文件所以来的so库
ldd xxx
结果发现, xxx.so => not found;
本质就是在linux 下查找的某个顺序路径中设置所依赖的so库路径。
常用的有
一: 设置 LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:xxx
二: 修改 /etc/ld.so.conf 文件内容,将相关库的路径添加到 /etc/ld.so.conf 文件中
三: 直接在/usr/lib 或者 lib库中设置把所以依赖的so拷贝一份