GNU make会自动删除预编译的头文件

时间:2012-09-27 09:49:20

标签: gcc gnu-make precompiled-headers

我正在尝试使用gmake和GCC来获得预编译的头文件来加速我的构建。 .gch文件已创建,但出于某种原因,只要构建完成,它就会自动删除。

以下是相关规则:

cxx_pch := ./bin/analysis.h.gch

bin/%.cpp.o: src/%.cpp $(cxx_includes) $(cxx_pch)
    $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(cxx_include_paths) -H -c -o $@ $<

bin/%.gch: src/pch/%
    $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(cxx_include_paths) -I./src -x c++-header -o $@ $<

我构建时打印的最后一件事是:

rm bin/analysis.h.gch

我的规则都不可能做到这一点; clean只有rm -r $(output_dir)

1 个答案:

答案 0 :(得分:3)

将其标记为.PRECIOUS:.SECONDARY:,以防止Make将其清理为中间目标。另请参阅http://www.gnu.org/software/make/manual/html_node/Special-Targets.html