我正在尝试构建 android R,但在内核 makefile kernel/exynos/AndroidKernel.mk:155 中出现以下错误:错误:写入只读目录:“/data/home/sumkumar/work/workspace/R/out/. ./out/target/product/**/obj/KERNEL_OBJ/arch/arm64/boot/Image” 这是在 Android Q 中通过使用标志“BUILD_BROKEN_PHONY_TARGETS=true”处理的,但在 R 中这是贬值的,因此不能使用相同的。
查看以下链接后,从 google 为 android R https://android.googlesource.com/platform/build/+/master/Changes.md#phony_targets更改虚假规则
我已通过删除错误路径中的“../”并过去之前的错误,如下更新了我的 Makefile,#KERNEL_OUT ?= $(if $(filter /% ~%,$(TARGET_OUT_INTERMEDIATES)),,$(realpath $(OUT_DIR))/../)$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ KERNEL_OUT ?= $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
但现在我收到错误重建错误,如下所述 kernel/exynos/AndroidKernel.mk:139:错误:真实文件“out/target/product/**/obj/KERNEL_OBJ/.config”取决于 PHONY 目标“假-rebuild" 14:21:04 ckati 失败:退出状态 1
我理解为虚假目标总是很脏,因此每个文件都将被重建,这取决于该虚假,但在我的情况下,这种重建是必需的。附上描述相同文件的快照
KERNEL_CONFIG := $(KERNEL_OUT)/.config
KERNEL_CONFIG := $(KERNEL_OUT)/.config
.PHONY:假重建
$(KERNEL_CONFIG): 假重建
$(show) echo "make $(KERNEL_DEFCONFIG)"
$(MAKE_CONFIG_CMD)
$(info MAKE_CONFIG_CMD is $(MAKE_CONFIG_CMD))
请让我知道是否有任何方法可以避免使用 phony-rebuild 并用替代机制替换它。
问候,