2012-03-28 83 views
1

嗨,大家好我想創建一個簡單的make文件並在cygwin中執行。 這是該文件的內容這個make文件有什麼問題?

test: test.c 
     gcc -c test.c -O3 -Wall -I. 
test1: test1.c 
       gcc -c test1.c -O3 -Wall -I. 

當我執行這個只有第一個文件是越來越編譯,而不是第二個。任何人都可以解釋爲什麼和什麼是正確的方式?

回答

6

它看起來像你的縮進是有點混淆。這些行開頭的空格應該是單個製表符。

另外:

默認情況下,與第一目標

,如果你要編譯的第二個文件,您將需要在命令行中鍵入make test1指定目標開始。

這也是常見的添加一個名爲all目標。您可以在文件頂部添加以下內容:

all: test test1 
+0

試圖用單一的標籤仍然沒有工作 – karthick 2012-03-28 10:58:39

+0

@karthick:您是否嘗試過做'讓test1'?你使用什麼命令? – 2012-03-28 11:03:37

+0

我只是打字make。現在只有我發現我需要指定目錄或全部包含並提及目標。謝謝馬克。 – karthick 2012-03-28 11:06:24

0

嘗試將第二種情況的前導空格與第一種情況的匹配。讓是好笑正確的縮進

+0

嘗試,仍然沒有工作 – karthick 2012-03-28 11:00:10

+0

什麼是錯誤提出的是給?有一個嗎? – Attila 2012-03-28 11:03:48

+0

你打電話給你怎麼樣?你可能想看看Mark Byers說的關於指定目標 – Attila 2012-03-28 11:05:03

0

你就忘記了-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是混淆的祕訣。