MTK平台提示 make mrproper,但是 make mrproper 也会报错

在工作中,原本是编译没有问题的,由于修改代码突然就出现编译不通过。提示 make mrproper,但是 make mrproper 也会报错。


  CHK     include/generated/utsrelease.h
  /home/wangwm/mt6735/kernel-3.10 is not clean, please run 'make mrproper'
  in the '/home/wangwm/mt6735/kernel-3.10' directory.
make[2]: *** [prepare3] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory `/home/wangwm/mt6735/kernel-3.10'
make: *** [/home/wangwm/mt6735/out/target/product/ap7350_65u_l1/obj/KERNEL_OBJ/arch/arm/boot/zImage] Error 2


解决思路:
一、
很清晰的提示  kernel-3.10 is not clean, please run 'make mrproper'
切换到内核目录   kernel-3.10 执行  make mrproper ,瞬间蒙X了。也会报错。


"CONFIG_TRUSTONIC_TEE_SUPPORT = "
scripts/Makefile.clean:17: /home/wangwm/mt6735/kernel-3.10/drivers/misc/mediatek/cpu_stress/Makefile: No such file or directory
make[4]: *** No rule to make target `/home/wangwm/mt6735/kernel-3.10/drivers/misc/mediatek/cpu_stress/Makefile'.  Stop.
make[3]: *** [drivers/misc/mediatek/cpu_stress] Error 2


make mrproper这个命令报错是因为在Makefile里面有指定路径但是却没有改路径时就会报错,类似这种:
obj-$(CONFIG_MTK_CPU_STRESS)    += cpu_stress/   不管 CONFIG_MTK_CPU_STRESS 这个有没有定义,没有 cpu_stress 这个目录就会报错。

把这些没有用到的全部注释。

例如:mtk8783源码

vi ./drivers/misc/mediatek/Makefile

注释这3个地方即可:

#hui obj-$(CONFIG_MTK_CPU_STRESS) += cpu_stress/

#hui obj-$(CONFIG_MTK_TC1_FEATURE) += tc1_interface/

#hui obj-$(CONFIG_MTK_AEE_MRDUMP) += mrdump/

make -C /home/bill/work/mt8783_ori1121/out/target/product/elink8783_tb_l1/obj/KERNEL_OBJ         KBUILD_SRC=/home/bill/work/mt8783_ori1121/kernel-3.10         KBUILD_EXTMOD="" -f /home/bill/work/mt8783_ori1121/kernel-3.10/Makefile         mrproper ARCH=arm64


二、
另外我们也可以看一下 命令  make mrproper 都是做了什么
    make mrproper 
    Remove all generated files + config + various backup files


就是删除一些文件。

其实我们也可以看到在 kernel-3.10 目录下 Makefile 
# prepare3 is used to check if weare building in a separate output directory,
# and if so do:
# 1) Check that make has not beenexecuted in the kernel src $(srctree)
prepare3:include/config/kernel.release
ifneq ($(KBUILD_SRC),)
@$(kecho) '  Using $(srctree) as sourcefor kernel'
    $(Q)if [ -f $(srctree)/.config-o -d $(srctree)/include/config ]; then \
        echo>&2 " $(srctree) is not clean, please run 'make mrproper'"; \
        echo>&2 " in the '$(srctree)' directory.";\
        /bin/false; \
   fi;
endif

这里就是我们最开始编译报错的脚本,从里我们也可以看出是要删除  kernel-3.10 目录下的一些文件。
也就是我们可以手动去检查一下这些文件,手动删除就可以了。

你可能感兴趣的:(MTK)