静态库路径配置
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.conf和ldconfig, PKG_CONFIG_PATH
(http://blog.csdn.net/allwtg/article/details/5145306)
https://www.cnblogs.com/gaoxiang12/p/4770813.html
以上是关于静态库路径配置的主要内容,如果未能解决你的问题,请参考以下文章
Android NDK 开发CMake 中查找链接 Android 自带动态库位置说明 ( ndk-bundleplatformsandroid-29arch-armusrlib )
Android NDK 开发CMake 中查找链接 Android 自带动态库位置说明 ( ndk-bundleplatformsandroid-29arch-armusrlib )