Hac*_*Saw 33
作为后续,.a 文件是一个“ar”存档。与 tar 存档不同,它存储 .o 或目标文件,允许将它们从存档中拉出,并链接到程序中等等。如果需要,您可以使用 ar 来存储其他文件。
您可以使用 -t 参数获取 ar 文件的成员列表,例如:
ar -t /usr/lib/libc.a
Run Code Online (Sandbox Code Playgroud)
.so 文件是一个“共享对象”文件,链接器可以使用更多信息,以便成员可以尽快链接到加载程序。
例如,尝试:
objdump -T /lib/libc-2.11.1.so
Run Code Online (Sandbox Code Playgroud)
(或您的 /lib 目录中的任何 libc.so 版本。)请注意,.so 文件也可以只包含一个链接描述文件,指示它在别处查找文件,或使用其他文件。
有趣的是,.so 文件也可以是一个完整的程序。例如,尝试运行/lib/libc.so.6。(遗憾的是,最后一部分似乎不适用于更现代的系统。并不是说这是一个很大的损失。)