ld-linux.so查找共享库的
顺序 一个在glibc库是LD
安装Linux。所以,x,其中x是一个数,和
名字将在不同平台上的不同。你可以使用ldd查看:
# LDD /斌/猫
Linux的大门。所以,1 = >(0x00bfe000)
Libc。所以,6 = / / libc库,6(0x00a4a000)。
/ lib / LD Linux。所以2(0x00a28000)。
最后一个不是
运行,第一个不是实际的库
文件,你找不到它,它是一个与内核交互的虚拟库文件。
ld-linux.so是图书馆致力于寻找库文件,例如,猫,猫第一次告诉ld-linux.so需要libc。所以。6库文件,并将找到ld-linux.so libc。所以,在一个特定的顺序6库又称猫。
ld-linux.so怎么找到它的事实上,它不需要看。对ld-linux.so
位置写的
程序,和GCC去世时是编译。在gcc程序ld-linux.so的位置可以通过
修改GCC spec文件的改变。
ld-linux.so查找运行时共享库的顺序
(1)LD Linux。所以。6是可
执行的
目标文件中指定的,可以被视为与readelf
命令 (2)LD Linux。所以。6
默认是在/ usr / lib和库
搜索;当glibc安装 / usr /地方,看起来 / usr /局部/ lib
(3)在ld_library_path
环境变量设置路径 (4)在/ etc / ld.so.conf指定的路径(或/ usr / / / LD等地方。所以conf),这是从二进制ld.so.cache要想产生的
在编译时,ld-linux.so查找共享库的顺序
(1)因此,6被设置在GCC的规范文件中。
(2)路径的搜索
目录打印打印gcc --主要是libgcc_s.so和其他库。可以设置gcc_exec_prefix
(3)在library_path环境变量设置路径,或L / usr /地方在编译命令行指定 / lib
(4)默认的搜索路径序列集的LD binutils时指定编译binutils。(由LD --冗长;grep search,|;视图)
(5)二进制程序的搜索路径序列中设置PATH环境变量。将军/ usr /
本地/本高于 / usr /箱
(6)搜索路径序列的头文件在编译的时候是类似图书馆的搜索顺序。一般/ usr /局部/包括高于 / usr /包括