【发布时间】:2011-05-27 19:59:42
【问题描述】:
我使用 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 是否支持做这样的测试?
也许我可以用另一种方式实现我想要的?
【问题讨论】:
-
-Winvalid-pch会给你一个警告。与-Werror一起使用,如果 gcc 看到无效的 .gch,它将停止编译。 -
@bobbogo 谢谢,这正是我需要的!它会为我省去一些麻烦。
标签: c++ gcc precompiled-headers gnu-make