有没有人成功地让预编译的头文件与GCC一起工作?我在我的尝试中没有运气,我也没有看到很多关于如何设置它的好例子。我在Ubuntu上试过cygwin,gcc 3.4.4和4.0。
发布于 2008-09-13 14:49:56
调用gcc的方法与您对源文件调用的方法相同,但使用的是头文件。
例如:
g++ $(CPPFLAGS) test.h
这将生成一个名为test.h.gch的文件
每次gcc搜索test.h时,它都会首先查找test.h.gch,如果找到了,就会自动使用它。
有关更多信息,请访问GCC Precompiled Headers
发布于 2012-05-25 22:25:32
C++预编译头的-x
说明符是-x c++-header
,而不是-x c++
。PCH的用法示例如下。
pch.h
// Put your common include files here: Boost, STL as well as your project's headers.
main.cpp
#include "pch.h"
// Use the PCH here.
如下所示生成PCH:
$ g++ -x c++-header -o pch.h.gch -c pch.h
pch.h.gch
必须与pch.h
位于相同的目录中才能使用,因此请确保从pch.h
所在的目录执行上述命令。
发布于 2008-09-12 13:40:01
我曾经设法让预编译头文件在gcc的指导下工作过一次,我记得当时也遇到了问题。要记住的一件事是,如果某些条件不满足,gcc将忽略该文件(header.h.gch或类似文件),可以在gcc precompiled header documentation page上找到该文件的列表。
通常,最安全的做法是让构建系统在第一步编译.gch文件,并使用与源代码的其余部分相同的命令行选项和可执行文件。这确保了文件是最新的,并且没有细微的差异。
首先让它使用一个人为的例子也可能是一个好主意,只是为了消除你的问题是特定于你项目中的源代码的可能性。
https://stackoverflow.com/questions/58841
复制相似问题