linux库文件含义

在研究Linux的图书馆很长一段时间的文件的概念,萧边还收集了图书馆的概念和功能今天。我希望在那之后你能看到许多成就。



1。什么是Linux库



在Windows平台和Linux平台上,很多图书馆,图书馆是一个二进制形式的可执行代码,可以由操作系统加载到内存执行。由于Windows和Linux的性质不同,两者的二进制库是不相容的。本文是有限的Linux下的图书馆。



2.linux图书馆的类型



有两种Linux库:静态库和共享库。这两者之间的区别是,代码在不同的时间加载,静态库的代码被加载到编译过程中的可执行程序,所以体积大。共享库的代码加载到内存中可执行程序运行时,它仅仅是在编译过程中引用,所以是小码。



3种存在的意义。图书馆



图书馆现有的、成熟的、可重用的代码,别人写的,你可以使用它,但是记得要遵守许可协议。在现实中,每一个程序取决于许多潜在的底层库,这是不可能从零开始每个人的代码,所以图书馆的存在是非凡的。一个共享库的好处是,如果不同的应用程序中调用相同的图书馆,只有一个内存中的共享库实例。



如何4。图书馆文件是在Linux下生成的。



静态库的后缀是A,它的生产分为两个步骤。



步骤1。由源文件编译生成一堆o,其中每一个包含这个编译单元的符号表。



步骤2.ar命令转换很多。O。一、编写的静态库



动态库的后缀是,因此,它是由GCC加上特定参数生成的。



例如:



$ gcc -fPIC - C。C $ gcc -共享- Wl -现在,libfoo.如此。1 O libfoo.所以1 *。



是怎样的5.linux库文件命名,没有规范



在Linux的领导下,库文件通常放在/ usr /自由/自由。静态库的名称通常是libxxxx,其中xxxx是库的名字,动态库的名称是libxxxx.so.major.minor一般,XXXX是库的名称,主要是主版本号和次要是次要版本号。



6。如何知道哪些库依赖于一个可执行程序



ldd命令可以对共享库的可执行程序,如LDD /斌/ lnlibc。所以。6 #



= > / / libc库。所以。6(0times;40021000) / lib / LD Linux。所以。2



/ lib / LD = > Linux。所以2(0times;40000000)。



你可以看到,在命令依赖于libc库和LD的Linux库



7。当执行可执行程序时如何定位共享库文件



当系统加载可执行代码,可以知道依赖的库的名称,但还需要知道绝对路径,你需要动态装载机(动态链接器/装载机)的ELF格式的可执行程序是由LD Linux完成。因此,其首个搜索ELF文件dt_rpath mdash ld_library_pathmdash环境变量后; / /文件列表等ld.so.cache mdash; / / / lib;usr / lib目录找到库文件后,加载到内存中



8。安装新图书馆后,如何让系统找到他



如果安装 / / usr / lib库,然后LD可以发现默认情况下没有任何其他操作。



如果你把它安装在另一个目录,你需要将它添加到 / / ld.so.cache文件等。步骤如下



1。编辑 / / ld.so.conf等文件,添加目录的路径库文件位于



2。要想运行,重建 / / ld.so.cache文件等



上面的解释是Linux库文件的概念。