【问题标题】:How does AOSP build system produce .rsp files and how to get them?AOSP 构建系统如何生成 .rsp 文件以及如何获取它们?
【发布时间】: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 文件似乎在构建后被删除了。

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

【问题讨论】:

    标签: clang android-source


    【解决方案1】:

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

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

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


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

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

    【讨论】:

    • 您可以按引用按钮将引用的文本格式化为引用的格式。您是否深入挖掘以找出 ninja 脚本中删除 rsp 文件的确切行?
    猜你喜欢
    • 2019-08-16
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多