如何在单步构建目标时预编译头文件?

时间:2018-05-21 23:35:47

标签: c++ c++11 gcc makefile precompiled-headers

我有一个简单的makefile,它找到相对于它的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 个答案:

答案 0 :(得分:2)

看起来我无法做到我的想法。这里的解决方案是遵循@ Rup的建议,并将主要依赖项包含在单个编译头中。

GCC - 3.21 Using Precompiled Headers

  

只有在满足以下条件时才能使用预编译的头文件:

     
      
  • 在特定编译中只能使用一个预编译头。
  •