简介
ar
是一个在 Unix-like 系统中广泛使用的命令行工具,它是 GNU Binutils 包的一部分。ar
(Archive)工具主要用于创建、修改和提取归档文件,通常用于创建和更新静态库。这些归档文件通常以 .a
扩展名结尾,并可以在程序链接时使用。
基本语法
ar [options] archive-file file...
其中,archive-file
是将要创建、修改或从中提取文件的归档文件名,而 file...
是将被添加到归档文件中的目标文件。
常用选项
以下是一些 ar
命令中常用的选项:
-r
:添加或替换文件到归档文件中。-c
:创建归档文件。-t
:列出归档文件的内容。-x
:从归档文件中提取文件。-d
:从归档文件中删除文件。-q
:快速添加文件到归档文件中(不排序,不检查重复)。-s
:创建归档文件的索引。-v
:显示详细信息。
创建归档文件
要创建一个归档文件,可以使用 -r
选项来添加文件,例如:
ar r libmylib.a file1.o file2.o file3.o
这将创建一个名为 libmylib.a
的归档文件,并将 file1.o
、file2.o
和 file3.o
添加进去。
列出归档文件内容
要列出归档文件中的内容,可以使用 -t
选项:
ar t libmylib.a
这将列出 libmylib.a
中的所有文件。
提取归档文件中的文件
要从归档文件中提取文件,可以使用 -x
选项:
ar x libmylib.a
这将提取 libmylib.a
中的所有文件。
如果要提取特定的文件,可以指定文件名:
ar x libmylib.a file1.o
这将只提取 file1.o
。
删除归档文件中的文件
要从归档文件中删除文件,可以使用 -d
选项:
ar d libmylib.a file1.o
这将删除 libmylib.a
中的 file1.o
。
创建归档文件的索引
要创建归档文件的索引,可以使用 -s
选项:
ar s libmylib.a
这将创建或更新 libmylib.a
的索引。
显示详细信息
要显示操作的详细信息,可以使用 -v
选项:
ar rv libmylib.a file1.o file2.o
这将显示添加到 libmylib.a
中的 file1.o
和 file2.o
的详细信息。
示例
以下是一个使用 ar
工具的示例工作流程:
- 编译源文件生成目标文件:
gcc -c file1.c -o file1.o
gcc -c file2.c -o file2.o
gcc -c file3.c -o file3.o
- 创建一个归档文件,并将目标文件添加进去:
ar r libmylib.a file1.o file2.o file3.o
- 列出归档文件内容:
ar t libmylib.a
- 从归档文件中提取文件:
ar x libmylib.a file1.o
- 显示操作的详细信息:
ar rv libmylib.a file1.o file2.o
通过以上步骤,你可以轻松地使用 ar
工具来创建、修改和提取归档文件,这对于管理和分发静态库非常有用。