Makefile:自动化变量 $@,$^,$<,$?
Makefile有三個非常有用的自動化變量。分別是$@,$^,$<代表的意義分別是:
$@ 表示目標(biāo)文件
$^ 表示通過目錄搜索得到的所有依賴文件的完整路徑名(目錄+文件名)
$< 表示第一個依賴文件
$? 表示依賴文件列表中被改變過的所有文件
如果我們使用上面三個變量,那么我們可以簡化我們的Makefile文件為:
# 這是簡化后的Makefile
main:main.o mytool1.o mytool2.o
gcc -o $@ $^
main.o:main.c mytool1.h mytool2.h
gcc -c $<
mytool1.o:mytool1.c mytool1.h
gcc -c $<
mytool2.o:mytool2.c mytool2.h
gcc -c $<
經(jīng)過簡化后我們的Makefile是簡單了一點(diǎn),不過人們有時候還想簡單一點(diǎn)。這里我們學(xué)習(xí)一個Makefile的缺省規(guī)則
.c.o:
gcc -c $<
這個規(guī)則表示所有的 .o文件都是依賴于相應(yīng)的.c文件的。例如mytool.o依賴于mytool.c,這樣Makefile還可以變?yōu)?#xff1a;
# 這是再一次簡化后的Makefile
main:main.o mytool1.o mytool2.o
gcc -o $@ $^
.c.o:
gcc -c $<
?
總結(jié)
以上是生活随笔為你收集整理的Makefile:自动化变量 $@,$^,$<,$?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: epoll深入解读
- 下一篇: Makefile: -I(大写i)、-L