【发布时间】:2019-08-16 09:16:36
【问题描述】:
用AOSP 9.0.0_r30源码,先用这些命令输出一个 构建过程中的详细构建日志:
make clean
make showcommands -j8 > ~/BuildAndroid.txt
然后在~/BuildAndroid.txt 中搜索“lld”(全字匹配)。我什么也找不到。 Clang 链接器应该有 lld 关键字。搜索“ld”有 50 个结果,但它们几乎不是链接命令。其中一个是“ld.mc”,它是一个候选者。
然后搜索一些 cpp 源文件名,例如“TextDropShadowCache”。我只得到2个命令,都是clang++编译命令。
libhwui.so 的链接命令引用了一个文件“libhwui.so.rsp”,该文件似乎可能(只是猜测)包含“TextDropShadowCache.o”:
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 ......
如果是真的,那么libhwui.so.rsp是怎么产生的?
该命令也引发了这个问题:What does @ mean in this clang command in AOSP build log?
根据上面的问题,@表示从文件中读取一个长命令,所以它很可能是一个列出所有libhwui.so需要的obj文件的文件。
所以问题基本得到解答,但未验证,因为 libhwui.so.rsp 似乎在构建后被删除。
AOSP 9.0 构建系统如何链接可执行文件?
【问题讨论】:
标签: build android-source