Linux C程式設計之 makefile使用

2021-08-26 18:28:42 字數 2584 閱讀 7821

一,示例

四個檔案:main.c;main.h;t_print.c;t_print.h

makefile:寫法1)

main:main.o t_print.o

gcc main.o t_print.o -o main

main.o:main.c main.h

gcc -c main.c

t_print.o:t_print.c t_print.h

gcc -c t_print.c

clean:

rm main.o t_print.o

執行:make 或 make main

刪除中間檔案: make clean

寫法2)

main:main.o t_print.o

gcc main.o t_print.o -o main

main.o:main.c main.h

gcc -c main.c

t_print.o:t_print.c t_print.h

gcc -c t_print.c

執行:make 或 make main

寫法3)

main:main.o t_print.o

gcc main.o t_print.o -o main

執行:make 或 make main

make 命令會自動推導 main.o的產生所需要的檔案

寫法4)

object=main.o t_print.o

main:$(object)

gcc $(object) -o main

clean:

rm $(object)

這裡使用了變數,但是依賴關係顯得有些不清楚。

【特別注意】gcc 前面是 tab空格鍵

二,make 執行過程

1)make 在當前目錄下找 "makefile"或"makefile"的檔案

2)如果找到,則會找檔案中第乙個目標檔案(target)。如上例子中main

3)如果 main 命令的執行,依賴後面命令執行所產生的檔案,則先執行後面命令

4)當main 命令需要的檔案生成完畢,則執行main 命令

三,細節

1)可以使用其他的檔名作為makefile 如 make.linux

make -f make.linux //-f file 指定檔案

2)makefile 中還可以包含其他檔案例如

makefile:

object=main.o t_print.o

main:$(object)

gcc $(object) -o main

clean:

rm $(object)

include aa

aa:
cleanmain:

rm main

執行:make cleanmain想當於執行 rm main

說明:make命令開始時,會把找尋include所指出的其他file,並把file中內容放置在當前位置

3)makefile中某條命令前加上 "-"表示無論發生什麼錯誤,都不要報錯繼續執行

-rm main.o t_print.o // 可以寫成萬用字元 rm *.o

-----夜已經深了----未完待續-----

Linux C程式設計之訊號介紹

unix訊號使用總結 訊號的原理 訊號是一種程序通訊的方法,他應用於非同步事件的處理。訊號的實現是一種軟中斷。它被傳送為乙個正在執行的程序,已告知程序某個事件發生了。1.1 訊號的建立 用訊號處理來模擬作業系統的中斷功能。要想使用訊號處理功能,你要做的就是填寫乙個訊號處理函式即可。1 呼叫signa...

Linux C程式設計之訊號介紹

unix訊號使用總結 訊號的原理 訊號是一種程序通訊的方法,他應用於非同步事件的處理。訊號的實現是一種軟中斷。它被傳送為乙個正在執行的程序,已告知程序某個事件發生了。1.1 訊號的建立 用訊號處理來模擬作業系統的中斷功能。要想使用訊號處理功能,你要做的就是填寫乙個訊號處理函式即可。1 呼叫signa...

linux C程式設計之死鎖

死鎖 死鎖就是你和小明打架,互相掐住對方脖子,你們都說 你先放 結果誰都不放,死鎖了.在程式裡面,有兩個鎖,a執行緒鎖住第乙個,b執行緒鎖住了第二個,這時如果a再試圖鎖第二個,失敗,因為b已經鎖住了,a只能等待.就在這時b試圖鎖第乙個,結果失敗,因為a已經鎖住了,b只好等待.就這樣大家一直等下去,誰...