我使用 gcc(运行方式g++
)和 GNU make。我使用 gcc 预编译头文件precompiled.h
,创建precompiled.h.gch
;Makefile 中的以下行执行此操作:
# MYCCFLAGS is a list of command-line parameters, e.g. -g -O2 -DNDEBUG
precompiled.h.gch: precompiled.h
g++ $(MYCCFLAGS) -c $< -o $@
一切都很好,直到我不得不g++
使用不同的命令行参数运行。这种情况下,即使precompiled.h.gch
存在也不能使用,编译会慢很多。在 gcc 文档中,我读到要处理这种情况,我必须创建一个名为的目录precompiled.h.gch
并将预编译的头文件放在那里,每组g++
命令行参数一个文件。
所以现在我想知道我应该如何更改我的 Makefile 来告诉g++
以这种方式创建 gch 文件。也许我可以运行g++
只是为了测试它是否可以使用precompiled.h.gch
目录中的任何现有文件,如果不能,则生成一个具有唯一文件名的新预编译头文件。
gcc 是否支持进行此类测试?
也许我可以用另一种方式实现我想要的?