Makefile基本用法

TARGET:Dependency file

                  COMMOND

TARGET:Dependency file

                  COMMOND

TARGET:Dependency file

                  COMMOND

其中:COMMOND必須以【TAB】字符作爲本行的開頭!

                  例如:

                            file1:file1.o file2.o

                                      gcc fie1.o file2.o -o  file1

                            file1.o:fie1.c head1.h

                                      gcc -Wall -O -g -c file1.c -o file1.o

                             file2:file2.c head2.h

                                      gcc -Wall -O -g -c file2.c -o file2.o

                              clean:

                                        rm file1.o file2.o

                       注:像clean這種沒有第一個目標文件的直接或間接關聯,那麼它後面的命令不會被自動執行。可以“make clean”來執行




變量的定義與賦值:

        1.遞歸展開定義:可以引用其之前沒有定義的變量,也就是其引用的變量在其之後定義。會造成無窮循環。

                   格式如下:

                   Var:variable

          2.直接展開定義:變量值對另外變量的引用在定義時被展開。同時不能對其後定義的變量進行引用。

         4.替換引用定義:

             例如:

                       foo:=a.o b.o c.o

                       bar:=$(foo:.o=.c)

                       bar的值就爲“a.c b.c c.c ”

         常用的自動變量:

                        $@:表示當前規則中的問正目標文件

                        $<:表示當前規則中第一個依賴文件名

                        $^:當前規則中的所有文件列表 

                         例如:

                                   exc=varibale1.o  variable2.o  variable3.o

                                   obj1= variable1.c head1.h

                                   obj2=variable2.c  head2.h

                                   obj3=variable3.c

                                   CC=gcc

                                   CFLAGS= -Wall -O -g -c

                                   Target:$(exc)

                                                $(CC) $^ -o $@

                                   variable1.o:$(obj1)

                                                $(CC) $(CFLAGS) $< $@

                                   variable2.o:$(obj2)

                                                 $(CC) $(CFLAGS) $< $@

                                   variable3.o : $(obj3)

                                                 $(CC) $(CFLAGS) $< $@

         環境變量:區分系統環境變量和make的環境變量

                             VPATH

        Makefile常用函數:

                            $(patsubst A,B,text) :此函數時將文本“text”中符合格式爲“A”的字符,用格式“B”替代。參數“A”經常使用模式通配符%來代表一個單詞裏的若干字符。

                                                                 次函數經常用於文件後綴名的轉化。例如:$(patsubst,%.c,%.o,$(var))

                            $(word N,text):此函數的作用是將“text”中的第N個單詞取出,並返回這個單詞。

       Makefile與shell:如果函數返回結果中存在換行符,那麼將其替換爲空格,並去掉末尾的回車符號。

                                      例:Var1=$(shell pwd)

       Makefilede 語法:顯示規則、隱式規則、靜態模式規則。

       Makefile自動編寫工具

                                     

                                   





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章