“ar”工具具体是做什么的?

5

我不太理解 Unix 系统中的 ar 实用程序是做什么的。

我知道它可以用于创建 C 库,但所有 man 手册告诉我的是它用于从文件创建存档,这听起来与例如 tar 相似....


我尝试了手册页,但并没有从中获得太多智慧...不过还是谢谢。 - Karel Bílek
这是一个关于编程的问题 - 关于使用ar命令制作供程序员在编程时使用的库。它不属于SuperUser。 - Jonathan Leffler
6个回答

9

主要目的是将单个目标文件(*.o)捆绑在一起,生成静态库文件(*.a)。 .a 文件包含一个索引,允许链接器快速定位库中的符号。

Tar 不会创建链接器可以理解的文件。


1
因果关系似乎是相反的:最初的Unix链接器编写时使用“ar”实用工具来存储其库。直到后来,“tar”实用程序才变得流行,主要是因为它与磁带设备的互操作性更好。 - Andy Ross

4

ar是一个通用的归档工具,就像tar一样。它主要用于创建静态库存档,这是它的传统用途之一,但你仍然可以将其用于一般目的的归档,尽管tar可能是更好的选择。ar也被用于Debian .deb软件包。


2

确切地说,ar是一个归档工具。它将一组目标文件(*.o)放入一个称为静态库的归档文件中。


5
因为tar用于将文件存储到磁带上(因此有个“t”字母),在磁带中存储库是没有用的 - 您必须等待操作员安装正确的卷才能链接程序。 - alex tingle

1

它将以目标文件的形式(.obj、.o等)的代码生成静态库(archive)。该库随后可以被包含在链接器ld中,以将对象代码包含到可执行文件中。

请查看维基百科文章中的示例用法。


1

您可能想要运行man ar以获取完整的信息。这里有一个网页副本。

引用如下:

GNU ar程序创建、修改和从存档中提取内容。 存档是一个单个文件,其中包含以使检索原始单个文件(称为存档成员)成为可能的结构组织的其他文件的集合。

ar被认为是二进制实用程序,因为这种类型的存档通常用作保存常用子例程的库。


1

ar 专门用于目标代码的归档(或库);tar 用于任意文件的归档。不知道为什么 GNU 将这些称为“归档”,在其他环境中,此实用程序被称为“图书管理员”,生成的文件只是库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接