大家都是直接打 gcc -o aa aa.c 嗎?
懶是一種美德, 要我每次都打這麼長, 一定會增加指關節炎的機率啊...
(本系三大職業病是關節炎, 近視, 還有痔瘡, 請大家要注意保養身體)
make 是好東西, 不只是 compile 程式好用, 常用指令也可以寫進去...
他會讀 Makefile 這個文字檔的內容, 我通常會在作業目錄寫這樣一個東西:
# --------- >8 ----------- >8 --請由此處撕開-- >8 ----------- >8 ----------
#
# 註解用 # 開頭, 這是 Beagle 的 Makefile
# 假設目錄裡有 hw1.c hw2.c hw3.c 三個作業
#
# 直接剪貼去用也可以, 但是下面標示注意的地方要自己把空格換成tab
#
CC = gcc # 指明 C Compiler 要用哪一個
CFLAGS = -g -Wall # gcc option
BIN = hw1 hw2 hw3 # 要 make 幾個執行檔都寫在這
all: $(BIN) # 第一個 target 是 default target,
# 也就是 make 等於 make all
# all: 和 $(BIN) 之間要用 tab 分開 <-- 注意
clean:
rm -f $(BIN) # rm 自己一行, 前面要用 tab <-- 注意
# End of Makefile
# --------- >8 ----------- >8 --請由此處撕開-- >8 ----------- >8 ----------
好的, 這樣你只要在那個目錄打 make 就會把三個程式做出來,
打 make clean 就會把三個執行檔清掉...
想單獨做 hw3 可以打 make hw3 就好...
make 會做更新判斷, 假如 hw1 hw2 hw3 已經 make 好了, 你修改了 hw3.c 內容,
這時打 make , 會重新 compile hw3, 卻不會 compile hw1 和 hw2 ...
如果你要強制重新 make 可以打 make clean 先清掉即可...
另外程式名稱不要叫 test 或 love ...
test 是 UNIX 指令, 你也叫 test 的話有可能會執行到另一個 test
love 的話, 你會不敢在別人面前 make ... <-- 真實案例
我寫的會不會太難懂啊? 感覺這篇寫得沒人看得懂的樣子... :(
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.161.7.70