linux應用開發-makefile

來源:互聯網
上載者:User

標籤:makefile   linux   gcc   

linux應用開發-makefile一 makefile

工程管理檔案,編譯成複雜的程式

組裝程式

二 規則

1 檔案名稱:全部小寫makefile或者首字母Makefile大寫,其他的都不行

2 檔案裡面#代表注釋

三 編寫

makefile由許多條規則群組成
規則:依賴項
    (前面留一個tab)命令
hello:main.o 1.c 2.c
    gcc main.c 1.c 2.c -o hello

1 自訂變數:MOBJ= main.c相當於宏 test: $(MOBJ)

2 預定義變數:系統預設的變數CFLAGS = -g -c CC = gcc

3 自動變數:
$*不包含副檔名的目標檔案名稱
$<第一個依賴檔案名稱
$?所有時間戳記比目標檔案晚的檔案
[email protected]目標檔案完整名稱
$^所有不重複的依賴檔案gcc $^ -o [email protected]

4 偽目標

.PHONY: install

即便當前檔案夾內有install檔案,也不執行

5 命令前面加上@符號,make的時候就不會輸出資訊:@gcc main.c 1.c 2.c -o hello

6 makefile的包含和嵌套

包含:#include testmk.mk

嵌套:gcc -c main.c -C submkdir

7 條件判斷

前面不空Tab
if 

else 

endif


 
8 makefile管理命令

-C dir讀入指定檔案夾dir下的makefile

-f file讀入目前的目錄下的file為makefile

-i 忽略所有的錯誤資訊

-l dir指定包含makefile的檔案的目錄

四 makefile常見問題

1 output不僅僅一個:用多個makefile檔案,相互include嵌套或者使用偽目標

2 源檔案或者依賴檔案很多:makefile分開多檔案或者分級

3 嵌套執行makefile:使用-C dir參數來指定讀取makefile的目錄

五 常見變數
自己寫的小程式






linux應用開發-makefile

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.