成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全面解析Linux Make規則

運維 系統運維
隨著Linux的深入了解,我們知道為什么Linux會趕上微軟。在當今社會Linux越來越成為主流,本文為你詳細介紹Linux Make規則,為你在學習Linux Make規則時起一定的作用。這是一段在Makefile中常見的規則 。

隨著Linux的深入了解,我們知道為什么Linux會趕上微軟。在當今社會Linux越來越成為主流,本文為你詳細介紹Linux Make規則,為你在學習Linux Make規則時起一定的作用。這是一段在Makefile中常見的規則 。

  1. clean:   
  2. rm -r core *.o *.a tmp_make   
  3. for i in *.c; do rm -f `basename $$i .c`.s; done   
  4. (cd chr_drv; make clean)   
  5. (cd blk_drv; make clean)   
  6. (cd math; make clean)  

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

第二句 for 循環遍歷目錄下所有的文件,將所有后綴名為.c文件名依次賦給i。然后執行do語句,當符合循環結束是執行done。可以說這里的for和shell里for語法是如此貌似。

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

  1. $ mkdir test #建立個實驗用的目錄   
  2. $ cd test   
  3. $ touch a.x #建幾個實驗用的文件   
  4. $ touch b.x   
  5. $ touch yy.x   
  6. $ vi Makefile #寫個實驗腳本  

在文件中寫入:

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

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

$ make

隨后可看到輸出的結果:

  1. for i in *.x;do echo $i;done   
  2. a.x   
  3. b.x   
  4. yy.x  

看到結果,for語句實現的功能就很清楚了。

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

  1. ec=echo   
  2. test:   
  3. $(ec) 'ddd'  

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

  1. echo 'ddd'   
  2. ddd  

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

  1. e =echo   
  2. prt=ls   
  3. clean:   
  4. $(prt)   
  5. for i in *.x;do $e $$i;done  

其輸出為:

  1. ls   
  2. a.sh a.x b.x Makefile yy.x   
  3. for i in *.x;do echo $i;done   
  4. a.x   
  5. b.x   
  6. yy.x  

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

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

顯示規則,定義如下

目標文件 : 依賴文件

生成目標文件的規則

隱含規則

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

生成目標文件的規則

在使用隱含規則時要使用一些內定宏來指定文件名:

$@ 全路徑的目標文件

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

$? 所有源文件名

$< 源文件名

以上就是Linux Make規則的知識。

【編輯推薦】

  1. 讓你應用Linux操作系統加速遠程登錄
  2. 輕松解決Linux系統grub錯誤
  3. 深入淺出的了解Linux rescue
  4. 詳解Linux中Load average負載
  5. Linux中的slab分配器講解
責任編輯:小霞 來源: JavaEye博客
相關推薦

2010-08-31 11:04:48

CSS優先級

2010-03-09 17:19:01

Linux時鐘

2010-01-06 17:12:57

Linux主要構成

2010-03-08 17:27:56

Linux profi

2010-03-09 14:45:48

Linux ifcon

2010-03-09 14:59:02

Linux ifcon

2010-03-10 16:59:59

Linux數字文件權限

2010-03-09 17:45:11

Linux計劃任務

2009-12-01 18:58:18

Suse Linux

2009-12-24 14:02:57

Linux集群技術

2012-02-13 17:26:35

2010-03-10 17:18:17

Linux磁盤陣列

2010-03-09 13:10:08

Linux特殊用戶權限

2017-04-10 18:34:16

AndroidNotificatio

2025-05-19 00:00:55

2024-08-29 08:28:17

2010-07-22 09:25:09

telnet命令

2010-06-24 15:35:04

IPx協議

2019-04-04 13:00:19

Linuxshell命令

2009-07-06 09:17:51

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人精品影院 | 精品av| 91一区二区三区在线观看 | 国产一区二区三区久久久久久久久 | 中文字幕av色 | 国产精品一区二区三 | 一级做a爰片性色毛片16 | 天天综合久久 | 日韩在线观看中文字幕 | 亚洲激情自拍偷拍 | 最近免费日本视频在线 | 精品成人免费一区二区在线播放 | 羞羞的视频免费观看 | 91视频国产区 | 日韩中文字幕视频在线观看 | 精品久久久久久久久久久久久久 | 精品一级 | 99成人在线视频 | 奇米在线 | 爱综合 | 91视频国产精品 | 国产乱码精品1区2区3区 | 天天干天天爽 | 中文字幕综合 | 国产午夜精品一区二区三区嫩草 | 久久这里只有精品首页 | 一色一黄视频 | 黄a网站 | 日韩欧美在线观看视频网站 | 一区二区免费看 | 久久精品免费观看 | 91福利电影在线观看 | www中文字幕 | 91n成人| www.狠狠干| 日韩精品久久久久 | 小早川怜子xxxxaⅴ在线 | 色综合久久久 | 91麻豆精品国产91久久久更新资源速度超快 | 国产在线成人 | 成人久久一区 |