$(srctree) is not clean, please run 'make mrproper'
发布日期:2025-06-19 12:22:17 浏览次数:4 分类:精选文章

本文共 808 字,大约阅读时间需要 2 分钟。

在使用 make menuconfig 重新配置 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。Makefile 中的代码检查了 $(srctree) 目录是否包含 .config 文件或 include/config 子目录。如果存在这些文件或目录,Makefile 会提示需要运行 make mrproper 清理。

分析

这段代码的逻辑是:

  • 检查 $(srctree)/.config 是否存在。
  • 检查 $(srctree)/include/config 子目录是否存在。
  • 如果上述任一条件为真,则输出提示信息并退出。
  • 解决方案

    要解决这个问题,需要确保 Kernel 目录是干净的,删除可能存在的 .config 文件和 include/config 子目录。

    步骤 1:检查 Kernel 目录

    打开终端,进入 Kernel 目录,执行以下命令:

    ls -a

    观察是否存在以下文件或目录:

    • .config
    • include/config

    步骤 2:删除不必要的文件和目录

    如果发现上述文件或目录,执行以下命令:

    rm Kernel/.configrm -rf Kernel/include/config

    步骤 3:重新运行 menuconfig

    完成删除后,重新运行 make menuconfig,确保生成新的 .config 文件。

    步骤 4:清理构建目录

    如果问题仍然存在,可以尝试清理构建目录:

    make mrproper

    总结

    通过删除不必要的文件和目录,确保 Kernel 源目录干净,可以解决编译时的错误提示。

    上一篇:$.each与$(data).each区别
    下一篇:#Pragma Pack(n)与内存分配

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2026年05月27日 03时06分24秒