Вопрос

I'm trying to get a precompiled header to speed up my build using gmake and GCC. The .gch file is created, but for some reason it's automatically removed as soon as the build completes.

Here are the relevant rules:

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 $@ $<

The last thing printed when I build is this:

rm bin/analysis.h.gch

None of my rules could possibly do this; clean only does rm -r $(output_dir).

Это было полезно?

Решение

Mark it as .PRECIOUS: or .SECONDARY: to prevent Make from cleaning it up as an intermediate target. See also http://www.gnu.org/software/make/manual/html_node/Special-Targets.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top