内核编译时, 到底用make clean, make mrproper还是make distclean

在编译内核时,  被make clean, make mrproer 和 make distclean搞的纠结, 稍微总结一下这三者之间的区别:
 
解压内核源码包后, 到内核源代码目录树的顶层目录, 执行
# make help
Cleaning targets:
  clean           - Remove most generated files but keep the config and
                    enough build support to build external modules
  mrproper        - Remove all generated files + config + various backup files
  distclean       - mrproper + remove editor backup and patch files
看帮助可以发现删除的文件范围从小到大依次为: make clean < make mrproper < make distclean, 查看源码目录树的顶层目录下的Makefile求证, 可以发现:
clean: archclean $(clean-dirs)
        $(call cmd,rmdirs)
        $(call cmd,rmfiles)
        @find . $(RCS_FIND_IGNORE) \
                −name′∗.[oas]′−o−name′∗.ko′−o−name′.∗.cmd′ −o−name′.∗.d′−o−name′.∗.tmp′−o−name′∗.mod.c′ −o−name′∗.symtypes′−o−name′modules.order′ −o−name′Module.markers′−name′∗.[oas]′−o−name′∗.ko′−o−name′.∗.cmd′ −o−name′.∗.d′−o−name′.∗.tmp′−o−name′∗.mod.c′ −o−name′∗.symtypes′−o−name′modules.order′ −o−name′Module.markers′ \
                -type f -print | xargs rm -f
 
mrproper: clean archmrproper $(mrproper-dirs)
        $(call cmd,rmdirs)
        $(call cmd,rmfiles)
 
distclean: mrproper
        @find $(srctree) $(RCS_FIND_IGNORE) \
                -name '*.orig' -o -name '*.rej' -o -name '*~' \                  -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \                  -o -name '.*.rej' -o -size 0 \                  -o -name '*%' -o -name '.*.cmd' -o -name 'core'-name '*.orig' -o -name '*.rej' -o -name '*~' \                  -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \                  -o -name '.*.rej' -o -size 0 \                  -o -name '*%' -o -name '.*.cmd' -o -name 'core' \
                -type f -print | xargs rm -f
也就是说, 执行make mrproper, 会先执行make clean, 执行make distclean之前, 会先执行make mrproper。
再回到make help的结果:
make clean      删除大多数的编译生成文件, 但是会保留内核的配置文件.config, 还有足够的编译支持来建立扩展模块
make mrproper   删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件
make distclean  mrproper删除的文件, 加上编辑备份文件和一些补丁文件。

linux内核配置清理make clean相关推荐

  1. arm linux 内核配置,Linux + ARM驱动开发环境配置(内核配置与编译)

    要想编写驱动,首先是建立内核目录树. ** 1.查看ARM开发板的内核版本 ** uname -a 我的arm开发板的版本是3.4.39 ** 2.安装必要的软件包 ** sudo apt-get i ...

  2. Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解

    前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式--在一个独立的文件夹通过makefile配合内核源码路径完成   那么如何将驱动直接编译进内核 ...

  3. linux内核启动配置,启动linux内核配置

    启动linux内核配置 发布时间:2005-09-22 20:04:48来源:红联作者:ccs LILO 入门 现在是最后来重新配置 LILO 的时候了,它将负责载入新的内核.LILO 是最流行的 L ...

  4. linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解-转

    前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式--在一个独立的文件夹通过makefile配合内核源码路径完成 那么如何将驱动直接编译进内核呢? ...

  5. Linux内核配置(转)

    2.5  Linux内核配置选项 下面以最新的Linux 2.6.20内核为例,介绍比较常用的一些Linux内核配置选项,其他选项读者可以参考系统提供的帮助信息. 需要说明的是,在内核配置中,某项选择 ...

  6. Linux内核配置选项的说明,Linux内核配置选项翻译

    Linux内核配置选项翻译 Linux内核配置选项翻译2.6.19.1(转) 内容目录 1. Code maturity level options 2 2. General setup 常规安装选项 ...

  7. Linux 内核配置选项

    Linux 内核配置选项 第一部分 01.Code maturity level options ---> 代码成熟等级选项 01.01. [ ] Prompt for development ...

  8. Linux 内核配置选项(转)

    Linux 内核配置选项 from http://www.mitbbs.com/mitbbs_article_t.php?board=Linux&gid=10715608&ftype= ...

  9. linux内核配置大全

    linux内核配置选项大全 Posted by isnull  on December 20, 2010  in SHELL | 0 Comment Code maturity level optio ...

最新文章

  1. spring junit 测试
  2. 画直线_在鸡的面前画直线,鸡为什么会晕呢,西瓜视频带你揭秘
  3. Thinkpad在Windows8上热键的解决方案
  4. C++中建立对象间消息连接的系统方法
  5. saltstack(三)state
  6. linux grep命令例子,详解linux grep命令
  7. keepalived架设简单高可用的nginx的web服务器   ----那些你不知道的秘密
  8. pycharm 的live_template的使用
  9. WINRAR青绿色透明主题皮肤 Vista/win 7下效果极佳
  10. Java 通过指定的ttf字体库,提取特定文字
  11. 学材料化学想转行计算机,2020大学最没用的十大专业-十大劝退专业(转专业必看)...
  12. 电子取证volatility
  13. 【安卓Android】VibratorService分析
  14. JS基础 day1 | JS介绍、变量常量、数据类型及转换
  15. python自制linux桌面,自己动手写Python实现Ubuntu自动切换壁纸
  16. 最新电脑版二级计算机视频怎么打开,电脑版钉钉如何打开视频会议中录制的视频...
  17. 微信小程序使用canvas绘制分享海报
  18. in use 大学英语4word_2015年6月大学英语四级真题试题及答案(word完整版)
  19. 小程序开发.云数据库
  20. 医药公司协同电子商务系统

热门文章

  1. 青龙面板+Ninja
  2. HTML入门笔记15-HTML中插入外部链接
  3. 安装软件时候出现无效驱动器D
  4. web项目安全漏洞防御实战
  5. 北风网基础+项目实战打造CS高手(C#系列培训)
  6. a股交易数据接口-API-说明
  7. 蓝桥杯STM32学习之G431、F103基础知识(二)
  8. linux指令unset,Linux命令——set 和 unset
  9. java大厂技术面试第八课 nginx/docker/tcp等
  10. 计算机视觉方向期刊汇总