[英]C++ Makefile doesn't compile dependencies/ linking error?
希望這不是一個愚蠢的問題。 我是C ++的Makefile的新手,我只是寫了一個簡單的像這樣的文件:
game: game.o state.o move.o board.o
g++ state.o move.o board.o game.o -o game
game.o: game.cpp
g++ -c game.cpp
state.o: state.cpp state.h
g++ -c state.cpp
move.o: move.cpp move.h
g++ -c move.cpp
board.o: board.cpp board.h
g++ -c board.cpp
clean:
rm *.o game
當我運行“ make game”時,在state.cpp中定義的game.cpp中調用的所有函數都會產生錯誤,並且state.cpp包含move.h和board.h。 基本上,就好像我只在運行“ g ++ -c game.c”一樣。
我不太了解如何解決此問題。 我應該更改依賴關系的順序嗎?
謝謝!
考慮到實際錯誤是這樣的:
g++ game.C -o game
undefined reference to State::setSize(int)' undefined reference to State::setToMove(int)' undefined reference to State::setToMove(int)'
我要說的是,您沒有game.cpp
源文件,但是有game.C
源文件,還有一個隱式的make規則game.C
來構建game
。 看到:
您可以使用--no-builtin-rules
選項運行make來禁用它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.