小结 指令速查:
- ldd xxxx.so 查看相关的库的链接情况
- locate xxx.so 查找系统中的相关库目录
- ls -l xxx.so 查看库的链接
- sudo ln -s 建立软连接
- sudo ldconfig 使链接生效
分析是库的链接出了问题
先使用 ldd 查看库的依赖(以下省略了N行)
- ldd /home/billbliss/ssd/caffe/distribute/lib/libcaffe.so
- libhdf5_hl.so.10 => not found
- libhdf5.so.10 => not found
- libleveldb.so.1 => /usr/lib/x86_64-linux-gnu/libleveldb.so.1 (0x00007f740c9e2000)
- liblmdb.so.0 => /usr/lib/x86_64-linux-gnu/liblmdb.so.0 (0x00007f740c7ce000)
说明是libhdf5_hl.so.10 和 libhdf5.so.10链接库找不到
- $ locate libhdf5_hl.so
- /home/bliss/anaconda2/lib/libhdf5_hl.so
- /home/bliss/anaconda2/lib/libhdf5_hl.so.10
- /home/bliss/anaconda2/lib/libhdf5_hl.so.10.1.0
- /home/bliss/anaconda2/pkgs/hdf5-1.8.17-1/lib/libhdf5_hl.so
- /home/bliss/anaconda2/pkgs/hdf5-1.8.17-1/lib/libhdf5_hl.so.10
- /home/bliss/anaconda2/pkgs/hdf5-1.8.17-1/lib/libhdf5_hl.so.10.1.0
- /usr/lib/x86_64-linux-gnu/libhdf5_hl.so
- /usr/lib/x86_64-linux-gnu/libhdf5_hl.so.7
- /usr/lib/x86_64-linux-gnu/libhdf5_hl.so.7.0.0
可见默认的系统路径里的版本为libhdf5_hl.so.7 和 libhdf5.so.7
需要将链接库 建立软连接 到libhdf5_hl.so.10 和 libhdf5.so.10
- $ cd /usr/lib/x86_64-linux-gnu
- $ ls -l libhdf5_hl.so.7
- lrwxrwxrwx 1 root root 19 12月 23 2013 libhdf5_hl.so.7 -> libhdf5_hl.so.7.0.0
- $ sudo ln -s libhdf5_hl.so.7 libhdf5_hl.so.10
- $ ls -l libhdf5.so.7
- lrwxrwxrwx 1 root root 16 12月 23 2013 libhdf5.so.7 -> libhdf5.so.7.0.0
- $ sudo ln -s libhdf5.so.7 libhdf5.so.10
- $ sudo ldconfig
可以验证一下 新建的软链接
- $ ls -l libhdf5.so.10
- lrwxrwxrwx 1 root root 12 6月 22 23:12 libhdf5.so.10 -> libhdf5.so.7
- $ ls -l libhdf5_hl.so.10
- lrwxrwxrwx 1 root root 15 6月 22 23:11 libhdf5_hl.so.10 -> libhdf5_hl.so.7
最后验证以下 库链接
- ldd /home/billbliss/ssd/caffe/distribute/lib/libcaffe.so
- libhdf5_hl.so.10 => /usr/lib/x86_64-linux-gnu/libhdf5_hl.so.10 (0x00007f740d0cc000)
- libhdf5.so.10 => /usr/lib/x86_64-linux-gnu/libhdf5.so.10 (0x00007f740cc2f000)
- libleveldb.so.1 => /usr/lib/x86_64-linux-gnu/libleveldb.so.1 (0x00007f740c9e2000)
- liblmdb.so.0 => /usr/lib/x86_64-linux-gnu/liblmdb.so.0 (0x00007f740c7ce000)