定位库

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

posted @ 2009-03-17 21:56  unipower  阅读(216)  评论(0编辑  收藏  举报