跳到主要内容

9. 编译工具库管理

本章介绍KF32工具链提供的kf32ar库管理工具。

9.1 命令行语法​

kf32ar命令提供了用于指定为文件及库处理方式的选项。

其命令格式为:

kf32ar [options] [-]<operation>[modifiers] [relpos] [count] <archive> [files]

options

kf32ar命令行选项

operation

操作,指定执行什么操作;其后可跟修饰符,用于调整操作的执行方式。常用操作如下:

  • d 从库中删除指定文件。
  • m 移动库中指定文件的位置。
  • p 打印库中指定文件的内容。
  • q 快速追加文件到库末尾。
  • r 替换库中的文件,或向库中插入新文件。
  • s 相当于 ranlib,为库生成或更新符号表。
  • t 列出库中包含的文件。
  • x 从库中提取指定文件。

relpos

库文件现有成员的名称,用于指定操作的(相对)位置

count

指定最多提取多少个与files匹配的成员

archive

指定待操作的库文件文件名

files

指定受操作影响的文件列表

9.2 库管理相关​

KF32工具链的库管理工具kf32ar支持以标准格式的ar库来收集和维护ELF目标文件集合。用户可以将库文件传递给链接器以替代多个ELF目标文件。

kf32ar能够实现以下功能:

  • 创建新的库;
  • 向库中添加文件;
  • 替换库中的单个文件;
  • 通过单次操作将库中所有文件替换为指定文件;
  • 控制文件在库中的排列位置;
  • 显式指定库的相关信息(例如列出库中的所有成员)。

需要注意的是,当在库中新增或替换文件时,每个文件都会附带对应的时间戳。此外,在创建、添加或替换库中的目标文件时,kf32ar默认会创建符号表,但默认情况下不会包含调试符号。

9.3 处理库文件的注意事项​

在使用库文件时需要注意以下事项:推荐使用同一套工具链进行输出,减少版本间的差异。

9.4 常用功能示例​

创建静态库:

kf32ar rc libtest.a file1.o file2.o

查看库内容:

kf32ar t libtest.a

添加或替换文件:

kf32ar rc libtest.a file3.o

提取库文件:

kf32ar x libtest.a file2.o