从http://wiki.debian.org/Multiarch/LibraryPathOverview复制:
在请求对象的(不推荐的)DT_RPATH动态标记中命名的任何目录,或者递归地,任何父对象(请注意,如果DT_RUNPATH也存在则忽略DT_RPATH)
我似乎无法在任何地方找到动态标签的定义。
答案 0 :(得分:2)
每个动态链接的ELF图像(类型ET_EXEC
的可执行文件或类型ET_DYN
的库)都有一个动态表格(您可以通过objdump -p a.out
或readelf -d a.out
查看)。表中的每个条目都包含一组Elf32_Dyn
或Elf64_Dyn
条目,每个条目都有d_tag
和d_value
个成员。文档here。
dynamic tag
是d_tag
条目,它只是一个整数标记(DT_NEEDED
,DT_STRTAB
等),描述了d_value
的内容表中的特定条目代表。
动态加载程序使用动态表加载ELF图像,查找它所需的库(使用DT_NEEDED
和DT_RPATH
或DT_RUNPATH
条目),初始化它(使用{{1 }或DT_INIT
),在其中找到符号(DT_INIT_ARRAY
,DT_SYMTAB
,DT_STRTAB
),重新定位等等。
答案 1 :(得分:1)
它只是指动态部分中的条目(DT可能代表动态表或其他东西)。
您可以使用以下命令查看它们:
$ objdump -p program