【Android系统源码修改】编译kernel时,$(srctree) is not clean, please run 'make mrproper'

博客指出在Android系统中,使用make menuconfig重新配置后编译kernel,会遇到提示目录不干净需运行‘make mrproper’的问题。问题源于kernel目录下的Makefile,若kernel目录有.config文件或kernel/include目录有config目录就会出现提示,解决方案是删掉对应文件和目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用make menuconfig重新配置后,再编译kernel时常会遇到这样的问题:
Using /home/likewise-open/BJS/lisa.liu/code/sprdroid4.0.3_vlx_3.0_13a/kernel as source for kernel
/home/likewise-open/BJS/lisa.liu/code/sprdroid4.0.3_vlx_3.0_13a/kernel is not clean, please run ‘make mrproper’
分析:
这条语句来自kernel目录下的Makefile:

ifneq ($(KBUILD_SRC),)
    @$(kecho) '  Using $(srctree) as source for kernel'
    $(Q)if [ -f $(srctree)/.config -o -d $(srctree)/include/config ]; then \
        echo "  $(srctree) is not clean, please run 'make mrproper'";\
        echo "  in the '$(srctree)' directory.";\
        /bin/false; \
    fi;
endif

仔细阅读这句话:

    $(Q)if [ -f $(srctree)/.config -o -d $(srctree)/include/config ]; then \
        echo "  $(srctree) is not clean, please run 'make mrproper'";\
        echo "  in the '$(srctree)' directory.";\

也就是说如果kernel目录下存在.config文件或者kernel/include目录下存在config目录,则会打印后面的

        echo "  $(srctree) is not clean, please run 'make mrproper'";\
        echo "  in the '$(srctree)' directory.";\

解决方案:
检查这两处,删掉对应的文件和目录即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bright_Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值