2

根据AOSP 9.0 构建系统如何链接可执行文件?以及AOSP 构建日志中这个 clang 命令中的 @ 是什么意思?,在链接模块时,AOSP 似乎会生成一个 .rsp 文件,其中包含模块所需的所有 obj 文件,并将文件名作为参数传递给链接命令,例如:

prebuilts/clang/host/linux-x86/clang-4691093/bin/clang++ /OpenSource/Build/Android/9.0.0_r30/soong/.intermediates/bionic/libc/crtbegin_so/android_x86_64_core/crtbegin_so.o @/OpenSource/Build/Android/9.0.0_r30/soong/.intermediates/frameworks/base/libs/hwui/libhwui/android_x86_64_core_shared/libhwui.so.rsp ......

但是 .rsp 文件似乎在构建后被删除。

问题是,这些文件是如何生成的以及如何获取这些文件?这可能需要学习和修改对我来说遥不可及的构建脚本。

4

1 回答 1

2

可能有你的答案,阅读 ninja build manual ,在提到的手册 .rsp 文件中。

https://ninja-build.org/manual.html

以下是我复制出来的信息。


rspfile, rspfile_content 如果存在(两者),Ninja 将对给定命令使用响应文件,即在调用命令之前将选定的字符串(rspfile_content)写入给定文件(rspfile),并在成功执行命令后删除文件。

这在 Windows 操作系统上特别有用,其中命令行的最大长度受到限制并且必须使用响应文件。

于 2020-01-17T12:59:46.463 回答