基本的には下記です。
[最終的に生成されるファイル]: [最終生成物を作る元となるファイル]
[最終的に生成されるファイルを作るためのコマンド群]
[最終的に生成されるファイルを作るためのコマンド群]
[最終的に生成されるファイルを作るためのコマンド群]
なので、提示の Makefile は [最終的に生成されるファイルを作るためのコマンド群] が [最終的に生成されるファイル] (main) を作っていない点がおかしい。
あと、header.cpp が [最終生成物を作る元となるファイル] に入っていないのもおかしい。
さらにいうと、ビルド時に毎回全ファイルのコンパイルとリンクが行われるので時間がかかる。
等々を改善すると下記になります。
Game: main.o header.o
g++ main.o header.o -o Game
main.o: main.cpp
g++ -Wall -c main.cpp
header.o: header.cpp
g++ -Wall -c header.cpp
これで一度ビルドした後に header.cpp を修正したら、make とすることで必要最小限のコンパイル・リンクだけで済みます (これが make コマンドの存在意義)。
そんなのめんどくさいし時間がかかってもいいからシンプルにいきたい、というなら下記ですね。
Game:
g++ -Wall main.cpp header.cpp -o Game
なお、clean のように [最終的に生成されるファイルを作るためのコマンド群] が [最終的に生成されるファイル] (clean) をあえて作らないことで、make clean とすると毎回削除してくれるというターゲットの使い方もあります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。