linux的Makefile

Makefile語法規則

目標文件:依賴文件
變量定義
命令行
...

目標文件:Makefile中必須有的文件,可以是一個也可是多個

依賴文件:目標文件所依賴的文件,可以空着,多個文件用空格分開,可以使用通配符(*.c)

變量定義:必須在定義目標文件前定義

                    變量的實質是字符串替換

                    使用變量$(變量名)

                    賦值方法:=普通方式,左變量右值

                                        :=使用前面的變量不使用後面的變量

                                        ?=變量沒被定義過就使用等號右邊的值,定義過就什麼也不做

                                        ifeq

                                                ifeq (bool表達式)

                                                            動作

                                                 endif

                                        += 給變量追加值

                                        define,定義一系列動作,可以換行

                                                 define 變量名

                                                             動作

                                                 endef

                                        override 改變make時的參數值

                                                override 變量名=值

                                                override 變量名:=值

                                                override 變量名+=值

命令行:獨立開始用Tab鍵開頭

                與依賴文件在同一行用分號;隔開,需要換行用\作爲換行符

                讓上一條命令的結果應用在下一條命令,需要使用分號分割兩條命令

僞類:固定用法

.PHONEY:cleanall cleanobj cleandiff
cleanall:cleanobj cleandiff
   rm program
cleanobj :
   rm *.o
cleandiff:
   rm *.diff



           








常見問題

遺漏分隔符,命令行沒用tab開頭

commands commence before first target    ,命令行在目標文件前出現


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