gte*_*ech 2 c linux debian gcc elf
复制自http://wiki.debian.org/Multiarch/LibraryPathOverview:
请求对象的(已弃用的)DT_RPATH 动态标记中指定的任何目录,或者递归地任何父对象(请注意,如果 DT_RUNPATH 也存在,则忽略 DT_RPATH)
我似乎无法在任何地方找到动态标签的定义。
每个动态链接的 ELF 映像(类型为 的可执行文件ET_EXEC
或类型为库ET_DYN
)都有一个动态表(您可以通过objdump -p a.out
或 来查看readelf -d a.out
)。表中的每个条目都包含一组Elf32_Dyn
或Elf64_Dyn
条目,并且每个条目都有一个d_tag
和d_value
成员。文档在这里。
是dynamic tag
条目d_tag
,它只是一个整数标记(DT_NEEDED
、等),描述表中该特定条目的DT_STRTAB
含义。d_value
动态加载器使用动态表加载ELF映像,查找它需要的库(使用DT_NEEDED
和DT_RPATH
或DT_RUNPATH
条目),初始化它(使用DT_INIT
或DT_INIT_ARRAY
),查找其中的符号(DT_SYMTAB
, DT_STRTAB
, DT_HASH
),重新定位它等等。