name=main
$(name).exe : $(name).obj
$(name).obj : $(name).cpp
要點:
exe在前,
obj在後。因為
nmake
判斷$(name
).obj
,如果不是最新的,就更新
obj,然後建立
exe。這裡,分號前叫做「
target
」,分號後叫做「
dependent
」。這還不是最簡單的,這裡使用了巨集
name
。對巨集的引用是
$(),如果巨集是單個字元,也可以不加()。
name=main
$(name).exe : $(name).obj
@echo "link exe is ok"
$(name).obj : $(name).cpp
新增了@echo
"link exe is ok"
,主要解釋
@的用法:不顯示自身,所以顯示的是
:link
exe is ok
而不是echo
"link exe is ok"
"link
exe is ok"
如果交換一下$(name).obj : $(name).cpp和$(name).exe : $(name).obj的位置,即
$(name).obj : $(name).cpp
$(name).exe : $(name).obj
exe將不會被編譯,似乎
nmake
只執行第一行,然後由依賴關係再去執行其他。
最簡單的makefile
hello.c的內容如下 include int main makefile 的內容如下 hello.exe hello.o gcc o hello.exe hello.o hello.o hello.c gcc c hello.c clean rm hello.o hello.exe window...
Makefile的簡單使用與最簡單模板
makefile簡單使用objs prog.o code.o objs表示的是中間的鏈結檔案cc gcc 使用巨集的方式確定編譯器 target test test表示所生成的目標可執行檔案,使用巨集的方式 target objs 目標可執行檔案的 在使用巨集時須得使用引用符號 其他的 引用也一樣 ...
乙個最簡單的Makefile例子
1.hello.c include int main 2.makefile hello hello.o cc o hello hello.o hello.o hello.c cc c hello.c clean rm hello.o 說明 cc o hello hello.o前面是乙個tab的空格 ...