日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

您好,歡迎進入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁 新聞資訊 >> 新聞頭條 >> make clean、make mrproper、make distclean的區(qū)別【轉(zhuǎn)】
新聞資訊
NEWS INFORMATION

make clean、make mrproper、make distclean的區(qū)別【轉(zhuǎn)】

發(fā)布時間:2019-05-22

本文轉(zhuǎn)載自:http://blog.csdn.net/liyayao/article/details/6818061

內(nèi)核編譯時, 到底用make clean, make mrproper還是make distclean

在編譯內(nèi)核時,  被make clean, make mrproer 和 make distclean搞的糾結(jié), 稍微總結(jié)一下這三者之間的區(qū)別:
 
解壓內(nèi)核源碼包后, 到內(nèi)核源代碼目錄樹的頂層目錄, 執(zhí)行
# 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
看幫助可以發(fā)現(xiàn)刪除的文件范圍從小到大依次為: make clean < make mrproper < make distclean, 查看源碼目錄樹的頂層目錄下的Makefile求證, 可以發(fā)現(xiàn):
clean: archclean $(clean-dirs)
        $(call cmd,rmdirs)
        $(call cmd,rmfiles)
        @find . $(RCS_FIND_IGNORE) \
                name.[oas]oname.kooname..cmd oname..doname..tmponame.mod.c oname.symtypesonamemodules.order onameModule.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
也就是說, 執(zhí)行make mrproper, 會先執(zhí)行make clean, 執(zhí)行make distclean之前, 會先執(zhí)行make mrproper。
再回到make help的結(jié)果:
make clean      刪除大多數(shù)的編譯生成文件, 但是會保留內(nèi)核的配置文件.config, 還有足夠的編譯支持來建立擴展模塊
make mrproper   刪除所有的編譯生成文件, 還有內(nèi)核配置文件, 再加上各種備份文件
make distclean  mrproper刪除的文件, 加上編輯備份文件和一些補丁文件。
 
其 實, 對于一個剛剛從kernel.org上下載的內(nèi)核源碼包, 可以不用執(zhí)行make clean/make mrproper/make distclean, 因為源碼包的狀態(tài)本身就是clean的。
 
另外, 就算編譯過內(nèi)核之后, 需不需要clean一下,  個人覺得應(yīng)該具體問題具體對待, 且看linuxsir上也有兄弟對這個問題有疑問:
Q: 很多內(nèi)核編譯的教程都說在make之前要先make mrproper,清除以前編譯的產(chǎn)物。但編譯器/鏈接器本身就會檢查文件的日期,并確定是否需要重新編譯/鏈接。如果清除了,很多以前已經(jīng)編譯過的代碼 又得重新編譯。如果說這樣能節(jié)省硬盤空間的話,那只有那些先前編譯過而現(xiàn)在不再需要的模塊的空間被節(jié)省了,而代價則是編譯時間延長了。個人覺得得不償失, 至少不需要每次編譯都來一次make mrproper。
 
A:  我沒有make mrproper,每次修改內(nèi)核配置后很快就能編譯完成,很方便,也沒發(fā)現(xiàn)什么問題
如果make不能確定那些文件要重新編譯,那還要make做什 么
個人觀點,盡信書則不如無書,實踐出真知,呵呵
 
A:  不執(zhí)行make mrproper是否出錯,取決于Makefile的智能化程度。如果Makefile沒能完成你所要求的全部改動,很可能編譯出來的內(nèi)核不如你所愿,甚 至可能導(dǎo)致panic。建議重新編譯的時候注意看看改動是否都落實了。

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

武川县| 彰武县| 临汾市| 花垣县| 龙川县| 息烽县| 南安市| 娱乐| 隆尧县| 井陉县| 河池市| 广德县| 子长县| 济阳县| 罗平县| 北安市| 临湘市| 宽甸| 勃利县| 仁怀市| 惠水县| 遂昌县| 文登市| 常宁市| 双流县| 敦煌市| 萨迦县| 剑阁县| 凯里市| 开平市| 松滋市| 南充市| 施甸县| 新余市| 东乌珠穆沁旗| 民和| 谷城县| 灯塔市| 林州市| 九台市| 米林县|