簡體   English   中英

C ++ Makefile無法編譯依賴項/鏈接錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM