静态库路径配置

存在问题:

  编译高博《视觉SLAM十四讲》的第六讲g2o_curve_fitting时,从thirdparty安装了g2o后,运行程序出现:
  error while loading shared libraries: libg2o_core.so: cannot open shared object file: No such file for directory
 

问题原因:

  在默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通过源码包进行安装时,如果不指定--prefix会将库安装在/usr/local目录下,而又没有在文件/etc/ld.so.conf中添加 /usr/local/lib这个目录。这样虽然安装了源码包,但是使用时仍然找不到相关的.so库,就会报错。也就是说系统不知道安装了源码包。
 

解决方法:

  在/etc/ld.so.conf中添加绝对路径/usr/local/lib

具体步骤:

1.用gedit打开/etc/ld.so.conf文件,添加内容:/usr/local/lib,由于不能直接保存,将此文件另存到home目录下。
2.在home目录下
sudo cp -i ld.so.conf /etc/ld.so.conf  //将原本的/etc/ld.so.conf文件覆盖
sudo ldconfg  //利用ldconfg执行文件将/etc/ld.so.conf的数据读入高速缓存中

结果:

  再次运行./g2o_curve_fitting 成功。

 

网络资源:

linux共享库,以及/etc/ld.so.conf文件的应用 (http://blog.csdn.net/oathevil/article/details/13564213)

/etc/ld.so.conf 文件介绍http://blog.csdn.net/yjkwf/article/details/7545002

/etc/ld.so.confldconfig PKG_CONFIG_PATH 

http://blog.csdn.net/allwtg/article/details/5145306

https://www.cnblogs.com/gaoxiang12/p/4770813.html

原文地址:https://www.cnblogs.com/ettie999/p/8889587.html