前一陣子,看了 linux 驅動程序中 makefile 變量的寫法,有些東西沒搞清楚,所 以索性就想把關于這塊的內容搞明" name="description" />

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Makefile使用初步

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    2005.08.11來自:CSDNNacci 貼在這里存個檔 MI LY: 宋體; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋體"> 前一陣子,看了 linux 驅動程序中 makefile 變量的寫法,有些東西沒搞清楚,所 以索性就想把關于這塊的內容搞明

    2005.08.11  來自:CSDN  Naclearcase/" target="_blank" >cci

    貼在這里存個檔

    MILY: 宋體; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋體">前一陣子,看了linux驅動程序中makefile變量的寫法,有些東西沒搞清楚,所
    以索性就想把關于這塊的內容搞明白,在這里感謝Dragonfly,他給我推薦了

    一篇好文章,看了之后,豁然開朗,寫點心得,希望大家喜歡。


       
    原文見這里:

    http://www.gnu.org/software/make/manual/html_chapter/make_6.html#SEC65
       
    如果覺得英文煩,就聽我先給各位侃侃吧,沒按字翻譯,寫了點覺得有用的東西。

     
    . 為什么使用變量

     
    變量在makefile中用來代表一個字符串,用來表示

    1. 一系列文件的名字
    2.
    傳遞給編譯器的參數

    3.
    需要運行的程序

    4.
    需要查找源代碼的目錄

    5.
    你需要輸出信息的目錄

    6.
    你想做的其它事情。

    說白了,這有些類似于編程語言中的宏。

      
    . 定義變量的方式和建議

      
    變量的名字是大小新敏感的,從大的方面來說,makefile中的變量被分為兩種,一個是用=來定義的,老外叫right-hand sides of variable,另外一種是用define關鍵字定義的,叫做bodies of variable。先簡單說這些,后面詳述。

      
    傳統上使用大寫字母為變量命名,但是GNU推薦使用小寫字母作為makefile內部使用的變量的名字,并用大寫字母定義隱式規則中的參數或在命令行中允許用戶重新定義的參數。


      
    . 基本的變量引用

      
    $(name)$來引用一個變量,所以當你要表示一個$符號時,你要使用$$。當你只使用一個字母作為變量的名字時,你可以用$name來引用這個變量,不過GNU 并不推薦這樣做,因為這種方式通常用來引用自動變量(Automatic Variables)。


       
    . 兩種風格的變量定義


    GNU
    有兩種定義變量的方式,它們的不同體現在定義它們的風格和他們被展開的方式。

      
    第一類叫做遞歸展開變量(Recursively Expanded Variable)。用=define關鍵字都

    可以定義這種變量,如果變量的定義引用了其它的變量,那么引用會一直展開下去,

    直到找到被引用的變量的最新的定義,并以此作為改變量的值返回。例如:

    代碼:

    foo = $(bar)
    bar = $(ugh)
    ugh = Huh?

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>