2013-11-09 114 views
1

使我的Makefile奇怪地工作。它給錯誤「沒有目標,停止」。當我寫作make clean時,它寫道:「沒有規則來使目標清潔。」 如果我分別編譯每個文件一切都很好。 以下是代碼:make:沒有目標。停止

CC = g++ 
CFLAGS = -g -Wall 
BOOSTIP = -I path/to/boost 
default: abc 
all: abc 
abc: main.o node.o network.o my_funs.o my_random.o 
    $(CC) $(CFLAGS) $(BOOSTIP) main.o node.o network.o my_funs.o my_random.o -o abc 
main.o: main.cpp node.hpp network.hpp 
    $(CC) $(CFLAGS) $(BOOSTIP) main.cpp -o main.o 
node.o: node.cpp node.hpp my_funs.hpp my_random.hpp 
    $(CC) $(CFLAGS) $(BOOSTIP) node.cpp -o node.o 
network.o: network.cpp network.hpp node.hpp my_funs.hpp my_random.hpp 
    $(CC) $(CFLAGS) $(BOOSTIP) network.cpp -o network.o 
my_funs.o: my_funs.cpp my_funs.hpp node.hpp my_random.hpp 
    $(CC) $(CFLAGS) $(BOOSTIP) my_funs.cpp -o my_funs.o 
my_random.o: my_random.cpp my_random.hpp 
    $(CC) $(CFLAGS) $(BOOSTIP) my_random.cpp -o my_random.o 
clean: 
    rm abc *.o *~ 
+1

運行makefile時我沒有遇到這個錯誤。我不得不在每一行的開始處更改空格(我懷疑你也擁有這些空格,但他們只是沒有在這裏複製)。我得到「沒有規則來製作目標main.cpp」,如果我把main.cpp放在我的目錄中,那應該沒問題。你不需要「default:abc」,因爲默認情況下會運行第一個目標,所以全部和默認值都是相同的。 – blueblob

+0

你使用什麼版本的Make?你有沒有嘗試過一個非常簡單的makefile? – Beta

+0

@Flexo我恭敬地不同意刪除我的帖子。事實上,我的回答完全正確。遵循我給出的路線正是回答了這個問題。如果它「只是查看它」,那將是不合適的。但是,我給出了精確的說明來找到確切的答案。重複該鏈接的部分是毫無意義的。例如,那裏的內容可能會改變。但要指出閱讀呃,是完全正確的。 –

回答

2

錯誤是由於壞行結束。 Makefile只有CR,因爲它應該有LF。 糾正它解決了這個問題。

相關問題