包含指令的预编译头文件

Posted

技术标签:

【中文标题】包含指令的预编译头文件【英文标题】:Precompiled header via unclude directive 【发布时间】:2014-01-02 02:45:52 【问题描述】:

我有两个标题 world.h worldw.h

世界.h

void h_world();

worldw.h

void g_world();

gcc world.hgcc worldw.h 预编译后,我有world.h.gchworldw.h.gch。此外,我将此预编译的标头添加到 main.c:

#include "world.h.gch"
#include "worldw.h.gch"
....

但是当我编译这个时,我有超过一千个错误。我希望它没问题,因为预编译的头文件只是减少了编译时间。

【问题讨论】:

Precompiled headers with GCC的可能重复 【参考方案1】:

而不是

#include "world.h.gch"
#include "worldw.h.gch"

你需要

#include "allworld.h"

然后放在 allworld.h 中

#include "world.h"
#include "worldw.h"

然后预编译allworld.h ...如果.h.gch文件存在,编译器将使用它;如果没有,它将使用 .h 文件。您可以通过使用 -H 标志编译源代码来查看正在使用的内容。

使用预编译头文件有很多限制;见http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html

【讨论】:

以上是关于包含指令的预编译头文件的主要内容,如果未能解决你的问题,请参考以下文章

编译过程学习

预编译(c++常问问题十二)

C : Visual Studio 和 Eclipse+MinGW 中的预编译头文件

GCC 和预编译头文件

C/C++中的预编译指令

使用预编译头提高编译速度