2012-12-02 29 views
0

我該如何解決這個問題?我試圖編譯一個make文件,它將編譯guess.cpp和yesno.cpp來生成文件guess.o和yesno.o,並將這兩個.o文件鏈接起來以生成一個名爲guess的可執行程序。這是我的Makefile這裏:使用makefile時出錯

guess: yesno.o guess.o 
    g++ -o guess yesno.o guess.o 
guess.o: yesno.h 
yesno.o: yesno.h 

我得到它 使誤差:*** No rule to make target `yesno.h', needed by `yesno.o'. Stop.

任何人都可以向我解釋什麼是錯的,我能做些什麼來解決這個問題。

+1

您可以提供文件'yesno.h'。但是你可能也希望'yesno.o'依賴'yesno.c'和'guess.o'來依賴'guess.c'。你也想要提供... – dmckee

回答

1

基本的makefile規則是

target: dependencies 
[tab] system command 

你錯過了[tab] system command部分。試試下面。而this是關於Makefile的簡單教程。

guess: yesno.o guess.o 
    g++ -o guess yesno.o guess.o 
guess.o: yesno.h guess.c 
    g++ -c guess.c 
yesno.o: yesno.h yesno.c 
    g++ -c yesno.c