预编译头包含指令

时间:2014-01-02 02:45:52

标签: c gcc header

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

world.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"
....

但是当我编译它时,我有超过一千个错误。我预计它没关系,因为预编译头只是减少编译时间。

1 个答案:

答案 0 :(得分: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