国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Linux命令之make規(guī)則
這是一段在Makefile中常見的規(guī)則

clean:

rm -r core *.o *.a tmp_make

for i in *.c; do rm -f `basename $$i .c`.s; done

(cd chr_drv; make clean)

(cd blk_drv; make clean)

(cd math; make clean)

第一句的 rm -f core *. *.a tmp_make 作用只是刪除文件,意思直白,沒什么好說的。

第二句 for 循環(huán)遍歷目錄下所有的文件,將所有后綴名為.c文件名依次賦給i。然后執(zhí)行do語句,當符合循環(huán)結(jié)束是執(zhí)行done??梢哉f這里的for和shell里for語法是如此貌似。

我們可以來做個實驗來驗證一下:

$ mkdir test #建立個實驗用的目錄

$ cd test

$ touch a.x #建幾個實驗用的文件

$ touch b.x

$ touch yy.x

$ vi Makefile #寫個實驗?zāi)_本

在文件中寫入:

clean:

for i in *.x; do echo $$i; done

寫好后,保存退出。運行命令:

$ make

隨后可看到輸出的結(jié)果:

for i in *.x;do echo $i;done

a.x

b.x

yy.x

看到結(jié)果,for語句實現(xiàn)的功能就很清楚了。

對于結(jié)果,有一個怪異的就是,原來腳本中的$$i,在輸出是就變成了$i。這時的for是不是就是一樣了。現(xiàn)在可以先做個結(jié)論,make處理腳本可shell處理腳本幾乎雷同,只是個別情況下要做變通。make會對$x進行擴展。比如:

ec=echo

test:

$(ec) 'ddd'

就可以在屏幕上看到輸出:

echo 'ddd'

ddd

所以應(yīng)該是make對Makefile進行處理,將其變成shell可執(zhí)行腳本,最后由shell解釋器來執(zhí)行有make翻譯過的腳本。并且是翻譯一句然后shell執(zhí)行一句,對于這個可以再做個驗證。

e =echo

prt=ls

clean:

$(prt)

for i in *.x;do $e $$i;done

其輸出為:

ls

a.sh a.x b.x Makefile yy.x

for i in *.x;do echo $i;done

a.x

b.x

yy.x

可以看到,$(prt)被擴展后就立即執(zhí)行了。后面的for也是這樣。

到這里開篇的那個例子算是解析完畢了。下面在看看Makefile中的規(guī)則定義,在make中的規(guī)則分為兩種,一種是顯示規(guī)則,另一種無可爭議的就是隱含規(guī)則了。

顯示規(guī)則,定義如下

目標文件 : 依賴文件

生成目標文件的規(guī)則

隱含規(guī)則

.源文件擴展名.目標文件擴展名:

生成目標文件的規(guī)則

在使用隱含規(guī)則時要使用一些內(nèi)定宏來指定文件名:

$@ 全路徑的目標文件

$* 去除擴張名的全路徑的目標文件

$? 所有源文件名

$< 源文件名

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Make 命令教程
shell特定變量和Makefile中自動化變量的對比記憶
makefile使用
makefile自動生成依賴關(guān)系
如何調(diào)試makefile
(MAKE)手動建立makefile簡單實例解析 - vim+gcc+gdb+make -...
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服