我們這裏只要介紹makefile中的兩個函數(makefile中不止兩個函數)
在makefill中所有函數都是有返回值的 必須拿到這個返回值
(和shell中的函數不同,shell函數中函數沒有返回值和參數表,但是可以像調用
程序一樣輸入命令行(可以理解成參數),進程的結束狀態(int類型)可以變相理解成返回值,這些在前面的章節 我們
已經介紹過了)
1.wildcard函數
和變量一樣要加 $來獲取值, ()括起來然後函數名(wildcard 參數)
src=$(wildcard ./*.c) 表示當前路勁下的所有 .c 文件
2.patsubst函數
這個函數是一個替換函數
obj=$(patsubst ./%.c ./%.o $(src))表示把$(src)所有的 .c 文件 都替換成 .o 文件
可能這樣說起來比較幹,那我們來實現一個簡單的demo看一下
效果:
不急讓我們一一講解其中的一些關鍵字
變量 src rely target的取值 我就不用多說了 把 用 $()
makefile中的特殊變量
$<:規則中的第一依賴
$@:規則的目標
$^:規則中的所有依賴
只能在規則的命令中使用
makefile中還提供了一些大寫的變量
接下來 說說這個 .PHONY:clean
他表示聲明 clean 爲一個僞目標(在運行前執行)
更多的C/C++ linux編程我會在下面的文章中陸續的分享,也可以關注‘奇牛學院’
來一起討論