Content #
在Linux系统中,动态链接器是/lib/ld-linux.so.X(X是版本号),程序所依赖的共享对象全部由动态链接器负责装载和初始化。
任何一个动态链接的模块所依赖的模块路径保存在“.dynamic”段里面,由 DT_NEED类型的项表示。动态链接器对于模块的查找有一定的规则:
- 如果DT_NEED里面保存的是绝对路径,那么动态链接器就按照这个路径去查找;
- 如果DT_NEED里面保存的是相对路径,那么动态链接器会在/lib、/usr/lib和由
/etc/ld.so.conf配置文件指定的目录中查找共享库。
为了程序的可移植性和兼容性,共享库的路径往往是相对的。
From #
程序员的自我修养