Welcome 微信登录

首页 / 操作系统 / Linux / 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" )
                -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" )
                -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 自学笔记:时间显示与管理&监控网络信息Ubuntu 11.10安装BusyBox:致命错误: curses.h:没有那个文件或目录相关资讯      Linux基础知识 
  • Linux基础知识之文件权限详解  (08月09日)
  • Linux基础知识之ls与文件名通配详  (08月01日)
  • Linux基础知识之history的详细说明  (07月31日)
  • Linux基础知识之文件管理命令(cp、  (08月09日)
  • Linux基础知识之man手册的使用  (07月31日)
  • Linux基础知识之文件的时间戳及  (07月31日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数