Как прекомпилировать заголовки при построении цели за один шаг?
У меня есть простой make-файл, который находит файлы CPP относительно него и строит цель оттуда. Как я могу изменить это, чтобы также прекомпилировать файлы заголовков относительно этого при построении цели?
TARGET ?= application
CXXFLAGS += -Os -I. -MMD -MP -std=c++11
SOURCES := $(shell find -L . -name '*.cpp')
OBJECTS := $(SOURCES:.cpp=.o)
DEPENDS := $(SOURCES:.cpp=.d)
$(TARGET): $(OBJECTS)
$(CXX) $(OBJECTS) -o $@ $(LDLIBS)
.PHONY: clean
clean :
$(RM) $(TARGET) $(OBJECTS) $(DEPENDS)
-include $(DEPENDS)
1 ответ
Решение
Похоже, я не могу сделать то, что я имел в виду. Решением здесь является следование совету @Rup и включение основных зависимостей в один скомпилированный заголовок.
GCC - 3.21 Использование предварительно скомпилированных заголовков
Предварительно скомпилированный заголовочный файл можно использовать только в том случае, если применяются следующие условия:
- Только один предварительно скомпилированный заголовок может быть использован в конкретной компиляции.