静态库路径配置

Posted 雨天的小尾巴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态库路径配置相关的知识,希望对你有一定的参考价值。

存在问题:

  编译高博《视觉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

以上是关于静态库路径配置的主要内容,如果未能解决你的问题,请参考以下文章

配置使用OpenCV静态链接库

NSBundle 无法访问静态库 java 脚本文件路径

Android NDK 开发CMake 中查找链接 Android 自带动态库位置说明 ( ndk-bundleplatformsandroid-29arch-armusrlib )

Android NDK 开发CMake 中查找链接 Android 自带动态库位置说明 ( ndk-bundleplatformsandroid-29arch-armusrlib )

在 CMake 中安装静态库的调试和发布配置

查看.a 静态库中的.o文件