4.1.6. 如何将缩减 .a 文件里面 .o 文件的个数

.a 即静态库文件。.a 文件是一种归档格式,里面是若干个 .o 文件。

如果 .a 里面的 .o 文件较多,且这些 .o 都是 LTO 模式编译得到的时候(即,编译时添加了 -flto 参数),可能会在链接的过程中遇到 Too many open files 的错误。

这个时候,可以考虑将 .a 文件里面的多个 .o 文件合并。

可以使用我们提供的缩减脚本(点击此处下载)

Note

需要首先确保工具链版本是 2.4.8 或以上。工具链下载地址参考:工具最新版本

4.1.6.1. 使用方式

  1. 安装 python3(点击此处下载) 环境,注意要将 python 添加到 PATH 中:

  1. 解压下载的合并脚本,如下图所示:

  1. 界面如下图所示,点击按钮选择文件即可:

  1. 完成后,会提示生成文件的保存路径

Note

如果希望用命令行来合并,可以使用下面的命令:

python3 merge_arhive_ofiles.py input1.a --output new.a 这个命令,将 input1.a.o 文件合并生成 new.a