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