我使用 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 是否支持进行此类测试?
也许我可以用另一种方式实现我想要的?