AOSP构建系统如何生成.rsp文件以及如何获取它们?

问题描述 投票:1回答:1

根据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文件似乎在构建后被删除。

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

clang android-source
1个回答
0
投票

也许有答案,请阅读提到的.rsp文件中的ninja构建手册。

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

以下是我复制的信息。


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

这在Windows OS上特别有用,在Windows OS中,命令行的最大长度受到限制,必须使用响应文件。

© www.soinside.com 2019 - 2024. All rights reserved.