嗨,大家好我想創建一個簡單的make文件並在cygwin中執行。 這是該文件的內容這個make文件有什麼問題?
test: test.c
gcc -c test.c -O3 -Wall -I.
test1: test1.c
gcc -c test1.c -O3 -Wall -I.
當我執行這個只有第一個文件是越來越編譯,而不是第二個。任何人都可以解釋爲什麼和什麼是正確的方式?
嗨,大家好我想創建一個簡單的make文件並在cygwin中執行。 這是該文件的內容這個make文件有什麼問題?
test: test.c
gcc -c test.c -O3 -Wall -I.
test1: test1.c
gcc -c test1.c -O3 -Wall -I.
當我執行這個只有第一個文件是越來越編譯,而不是第二個。任何人都可以解釋爲什麼和什麼是正確的方式?
它看起來像你的縮進是有點混淆。這些行開頭的空格應該是單個製表符。
另外:
默認情況下,與第一目標
,如果你要編譯的第二個文件,您將需要在命令行中鍵入make test1
指定目標開始。
這也是常見的添加一個名爲all
目標。您可以在文件頂部添加以下內容:
all: test test1
你就忘記了-o標誌:
test1: test1.c
cc -O3 -Wall -I. -o test1 test1.c
甚至更好:
test1: test1.c
cc -O3 -Wall -I. -o [email protected] $?
或者更短:(信任的內置宏)
CFLAGS += -O3 -Wall -I.
test1: test1.c
注:我故意省略測試:test.c部分。命名程序test
是混淆的祕訣。
試圖用單一的標籤仍然沒有工作 – karthick 2012-03-28 10:58:39
@karthick:您是否嘗試過做'讓test1'?你使用什麼命令? – 2012-03-28 11:03:37
我只是打字make。現在只有我發現我需要指定目錄或全部包含並提及目標。謝謝馬克。 – karthick 2012-03-28 11:06:24