.gchというファイルができている…なんで?
このgchという拡張子はgccが出力したファイルで、ヘッダーファイルからプリコンパイル済みヘッダーファイルを作ったらできるもの。
ということは、コンパイル時にヘッダーをgccに渡しているって事かな。
よくみると上記のルール、文末に$^とかいてある…
これだと、ターゲットが依存している全てのファイル名が渡ってしまう事になる。
依存関係は
Graphic.o : Graphic.cpp Graphic.h
みたいになっているので、ルールに適用されて、ヘッダーファイルまでgccされ、プリコンパイル済みヘッダーファイルができあがっている。
プリコンパイル済みヘッダーファイルを作ろうとは思っていないのでこれはミス!
ということで、$^から$<に変更。
とりあえず、これで自分用の大規模開発の環境が整った。