У меня есть очень простой make-файл, который в основном выполняет следующие действия:
# 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)
Но он все равно создается каждый раз: (