轉載自:
http://my.oschina.net/u/1413984/blog/199029
Makefile有三個非常有用的變量。分別是$@,$^,$<代表的意義分別是:
$@--目標文件,$^--所有的依賴文件,$<--第一個依賴文件。
如果我們使用上面三個變量,那麼我們可以簡化我們的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 $<
經過簡化後,我們的Makefile是簡單了一點,不過人們有時候還想簡單一點。這裏我們學習一個Makefile的缺省規則
.c.o:
gcc -c $<
這個規則表示所有的 .o文件都是依賴與相應的.c文件的。例如mytool.o依賴於mytool.c這樣Makefile還可以變爲:
# 這是再一次簡化後的Makefile
main:main.o mytool1.o mytool2.o
gcc -o $@ $^
.c.o:
gcc -c $<
好了,我們的Makefile 也差不多了,如果想知道更多的關於Makefile的規則,可以查看相應的文檔。