私は非常に単純なmakefileを持っており、基本的に次のことを行います。
# Pre-compiled header
CORE_PCH_FILENAME =Core.h
CORE_PCH:
$(CXX) $(CXX_CFLAGS) -x c++-header $(CORE_PCH_FILENAME)
#Objects
obj/%.o: CORE_PCH %.cpp obj/%.d
@mkdir -p obj
$(CXX) $(CXX_CFLAGS) -c $*.cpp -o $@
#Dependencies
obj/%.d: %.cpp
@mkdir -p obj
$(CXX) $(CXX_CFLAGS) -MM -MT obj/$*.o -MF $@ $<
私の問題は、初めて作成するときにCore.h.gchが作成され、プロジェクトがビルドされることです。それはいいです。
ただし、何も変更しなくても、makeを再度実行すると、Core.h.gchが再作成され、すべてが再コンパイルされます。
プリコンパイル済みヘッダーがない場合、makeは正常に動作します(何も変更されていない場合は何も再構築せず、変更が加えられた場合に必要なものだけを再構築します)
しかし、私は本当にそのプリコンパイル済みヘッダーが欲しいのですが、私が正しくやっていないことがありますか?
編集:
以下が提案されました:
# Pre-compiled header
$(CORE_PCH_FILENAME) =Core.h
CORE_PCH: $(CORE_PCH_FILENAME)
$(CXX) $(CXX_CFLAGS) -x c++-header $(CORE_PCH_FILENAME)
しかし、それでも毎回作成されます:(