在Linux下编程经常要使用到动态程序库,下面就动态库的使用说明几点.
1.动态库的加载
Linux中使用动态链接器/加载器ld.so来加载动态库。ld.so除了加载系统默认的/usr/lib和/lib下的所有库外,还会读取$LD_LIBRARY_PATH和$LD_PRELOAD变量中定义的动态库位置。此外,你还可以修改/etc/ld.so.conf和/etc/ld.so.preload文件来
定义加载路径。
2.动态库的使用
a.可以使用gcc -lname 来使用/usr/lib或/lib中定义的libname.so的动态库。
b.可以使用gcc -Llib_path -lname 来使用lib_path目录下的libname.so的动态库。需要注意的是只有a情况下不要通过-L指定库路径。动态库加载中所提到的路径的设置是用来加载库的,gcc编译链接时并不会去搜索那些路径,gcc只会搜索/usr/lib或/lib.库在当前目录下,要用-L.设定。
3.要注意的
在使用中,我们一定要先加载库,可以使用ldconfig -p查看所以的已加载的库,还没有加载的使用1中的方法加载,并使用ldconfig -v更新加载,然后才能在build程序时使用gcc链接。