分析linux
成都創(chuàng)新互聯(lián)公司專注于圖們企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城建設(shè)。圖們網(wǎng)站建設(shè)公司,為圖們等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
make命令與Makefile的區(qū)別:
1、make命令有一些內(nèi)置的默認(rèn)功能,但是光有這個(gè)還是不知道怎么build程序。必須提供一個(gè)文件告訴make應(yīng)用程序的構(gòu)造,這個(gè)文件就是makefile。
2、Make和makefile提供了強(qiáng)大的功能來管理項(xiàng)目的編譯以及發(fā)布install到指定文件夾。
3、make的原理是執(zhí)行一個(gè)叫Makefile文件里的指令,make的基本用處是自動(dòng)根據(jù)makefile里的指令來編譯源文件。還可以用來做比如安裝軟件,卸載軟件等事情,但前提是在makefile里寫了。
4、比如makefile里有這么些內(nèi)容:
install
:
commands
然后用make
install的話,make程序就會(huì)按照上面install:后面的指令
commands
執(zhí)行安裝,uninstall也是一樣的道理,大部分的作者會(huì)寫有卸載的部分,這時(shí)只要簡單地執(zhí)行make
unistall就可以,如果作者懶沒有寫,那就只有根據(jù)make
install中的步驟,把什么文件拷到哪去了,然后分別手動(dòng)刪除。還有關(guān)鍵的一點(diǎn)是,編譯安裝完成后,不要?jiǎng)h除源代碼,不然就算作者寫了unnistall目標(biāo),也沒有makefile可以執(zhí)行了。
在make命令中不得不提到的就是make file,makefile關(guān)系到了整個(gè)工程的編譯規(guī)則。一個(gè)工程中的源文件不計(jì)其數(shù),并且按類型、功能、模塊分別放在若干個(gè)目錄中,makefile定義了一系列的規(guī)則來指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,因?yàn)閙akefile就像一個(gè) Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。
makefile帶來的好處就是自動(dòng)化編譯,一旦寫好,只需要一個(gè)make命令,整個(gè)工程完全自動(dòng)編譯,極大的提高了軟件開發(fā)的效率。 而make是一個(gè)命令工具,是一個(gè)解釋makefile中指令的命令工具。 make命令執(zhí)行時(shí),需要一個(gè) makefile 文件,以告訴make命令需要怎么樣的去編譯程序。
在平時(shí)的操作練習(xí)中,我們要學(xué)會(huì)利用make。掌握它的實(shí)現(xiàn)方式。
不是
Linux
中的
make
命令出錯(cuò),而是你的
makefile
文件中的文法、或者編譯源程序的先后順序有問題,所以導(dǎo)致
make
命令無法編譯多個(gè)源程序。make
命令對(duì)
makefile
的語法是很嚴(yán)格的,所以需要你仔細(xì)檢查
makefile
中的內(nèi)容哪里有寫得不規(guī)范的地方。
1、使用find命令查找/etc目錄下名字是inittb的文件,執(zhí)行find? /etc/? -name? ?inittab,-name為參數(shù),表示名字,執(zhí)行后如圖所示。
2、在當(dāng)前目錄下,找到文件名是inittab的文件,首先進(jìn)入目錄,執(zhí)行find .? -name inittab,其中"." 表示當(dāng)前目錄。
3、查找名字是tmp的文件夾,執(zhí)行命令find? ?/etc -typd d? -name tmp ,其中/etc表示在etc目錄下搜索,-type d表示執(zhí)行指定為文件夾。
4、找到/tmp目錄下的.log文件,并將其刪除掉,執(zhí)行命令find /tmp? -type f? -name *.log? -exec rm -rf {} \,其中-type f表示執(zhí)行文件類型,-exec表示執(zhí)行命令。
5、查找/var/log目錄下30天以前修改的文件,執(zhí)行命令find /var/log -type f -mtime? +30, 如果是-30則表示30天以內(nèi),執(zhí)行結(jié)果如圖。
Make:意思是編譯過程,同時(shí)存在緩存當(dāng)中,當(dāng)執(zhí)行make install 才是真正的安裝
例如:我需要安裝一個(gè)libxml2-2.6.30 包
解壓: tar -zxvf libxml2-2.6.30
進(jìn)入目錄: cd /lamp/libxml2-2.6.30
安裝指定路徑: ./configure --prefix=/usr/local/libxml2/
編譯: make
安裝: make install