AOSP 构建系统如何生成 .rsp 文件以及如何获取它们?
Posted
技术标签:
【中文标题】AOSP 构建系统如何生成 .rsp 文件以及如何获取它们?【英文标题】:How does AOSP build system produce .rsp files and how to get them? 【发布时间】:2019-04-01 05:28:24 【问题描述】:根据How does AOSP 9.0 build system link the executable?和What does @ mean in this clang command in AOSP build log?,链接模块时,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 文件似乎在构建后被删除了。
问题是,这些文件是如何生成的,如何获取这些文件?这可能需要学习和修改对我来说遥不可及的构建脚本。
【问题讨论】:
【参考方案1】:也许有你的答案,阅读 ninja build manual ,在提到的手册 .rsp 文件中。
https://ninja-build.org/manual.html
以下是我复制出来的信息。
rspfile, rspfile_content 如果存在(两者),Ninja 将对给定命令使用响应文件,即在调用命令之前将所选字符串 (rspfile_content) 写入给定文件 (rspfile),并在成功执行命令后删除文件。
这在 Windows 操作系统上特别有用,其中命令行的最大长度受到限制并且必须使用响应文件。
【讨论】:
您可以按引用按钮将引用的文本格式化为引用的格式。您是否深入挖掘以找出 ninja 脚本中删除 rsp 文件的确切行?以上是关于AOSP 构建系统如何生成 .rsp 文件以及如何获取它们?的主要内容,如果未能解决你的问题,请参考以下文章
如何从AOSP的android源代码中删除主屏幕的谷歌搜索栏
AOSP:如何在 Android Studio 中分别构建 /platform/frameworks/base 或 /platform/frameworks/support