定位库
1.连接时定位库
连接程序时共享库必顺存在,而且每次运行程序的时候也必须存在,无论何时只要连接程序员需要查找库,就会查找指定的目录列表.大多数的系统库保存在目录/usr/lib /lib中,因此会自动查找这两个目录,通过使用一个或多个-L选项,可以指定查询其它目录,例如:
gcc -L. -L/home/unipower/lib prog.o
连接程序先查找共享库再查勘找静态库.下面的命令会为库libmilt.so,查找每一个目录,然后是libmilt.a:
gcc -lmilt prog.o
通过在命令行中指定确切的库名就可以限制所有的查找操作,下面的例子使用当前目录的库libjj.a然后是/home/unipower/lib中的库libmilt.so:
gcc libjj.a /home/unipower/lib/libmilt.so prog.o
2.运行时载入库
一旦程序被连接;要使用共享库,就必顺在运行的时候能够找到共享库的位置.不是通过目录定位库而是通过名字定位库.无论何时载入程序并打算运行的时候,共享库都应该位于以下位置:
(1).环境变量LD_LIBRARY_PATH列出的用"分号"分隔拉目录.
(2).文件/etc/ld.so.cache 中找到的库的列表.由工具ldconfig维护
(3).目录/lib.
(4).目录/usr/lib
如果确切了解应用程序使用哪个库,可以使用工具ldd