我使用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是否支持执行这样的测试?
也许我可以用另一种方式实现我想要的?
-无效-pch
会给你一个警告。与-Werror
一起使用,如果 gcc 发现一个无效的 .gch,它将停止编译。 - bobbogo