2

我正在尝试使用 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)

4

1 回答 1

3

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

于 2012-09-27T09:54:46.740 回答