身为一个coder菜鸟,在面对linux的茫然世界时总归有些不知所措,这不,近来搞ortp库,装了半天,程序编译通过后在运行时居然找不到装的ortp库,由此,惹怒了本菜,遂有此片文章。
一.一般安装动态库方式
#./configure
#make
#make install
这样,动态库一般安装在/lib、/usr/lib、/usr/local/lib、自定义目录下。
二.找不到共享库文件的原因
1.压根就没有此共享库,也就是说系统中根本就没有此库或者说没装,这时,从网上下载一些词库装上去即可;
2.已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认的路径找不到共享库,这也是众多人面对的情形,下面主要针对此原因进行说明。
三.linux寻找动态链接库的顺序
1.编译代码时指定的动态库搜索路径,这里说明一下,不是Makefile中的-L等指定的目录;
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3.配置文件/etc/ld.so.conf指定的动态库搜索路径;
4.系统默认搜索路径/lib;
5.系统默认搜索路径/usr/lib.
四.基于顺序的解决方法
1.编译时指定目录:
在程序文件中的.dynamic段包含了一个叫DT_RPATH的项,是一个以冒号分隔的库文件搜索目录列表,用以搜索动态库。
在编译程序时,加入 ”-WI,-rpath =目录“选项,即将动态库文件搜索路径加入到可执行的连