首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用GCC预编译头文件

使用GCC预编译头文件
EN

Stack Overflow用户
提问于 2008-09-12 12:42:58
回答 3查看 71.4K关注 0票数 98

有没有人成功地让预编译的头文件与GCC一起工作?我在我的尝试中没有运气,我也没有看到很多关于如何设置它的好例子。我在Ubuntu上试过cygwin,gcc 3.4.4和4.0。

EN

回答 3

Stack Overflow用户

发布于 2008-09-13 14:49:56

调用gcc的方法与您对源文件调用的方法相同,但使用的是头文件。

例如:

代码语言:javascript
复制
g++ $(CPPFLAGS) test.h

这将生成一个名为test.h.gch的文件

每次gcc搜索test.h时,它都会首先查找test.h.gch,如果找到了,就会自动使用它。

有关更多信息,请访问GCC Precompiled Headers

票数 9
EN

Stack Overflow用户

发布于 2012-05-25 22:25:32

C++预编译头的-x说明符是-x c++-header,而不是-x c++。PCH的用法示例如下。

pch.h

代码语言:javascript
复制
// Put your common include files here: Boost, STL as well as your project's headers.

main.cpp

代码语言:javascript
复制
#include "pch.h"
// Use the PCH here.

如下所示生成PCH:

代码语言:javascript
复制
$ g++ -x c++-header -o pch.h.gch -c pch.h

pch.h.gch必须与pch.h位于相同的目录中才能使用,因此请确保从pch.h所在的目录执行上述命令。

票数 9
EN

Stack Overflow用户

发布于 2008-09-12 13:40:01

我曾经设法让预编译头文件在gcc的指导下工作过一次,我记得当时也遇到了问题。要记住的一件事是,如果某些条件不满足,gcc将忽略该文件(header.h.gch或类似文件),可以在gcc precompiled header documentation page上找到该文件的列表。

通常,最安全的做法是让构建系统在第一步编译.gch文件,并使用与源代码的其余部分相同的命令行选项和可执行文件。这确保了文件是最新的,并且没有细微的差异。

首先让它使用一个人为的例子也可能是一个好主意,只是为了消除你的问题是特定于你项目中的源代码的可能性。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档