我最近发现了C++
中的预编译头,特别是gcc
编译器。
我确实在网上找到了有关.h.gch
文件的信息,但尚未能够使用它们。
我需要知道:
.h.gch
文件?我的代码没有创建一个?
您是否像其他用户定义文件一样包含它?
例如:
#include "SomeCode.h.gch"
还是有其他使用方式?
请帮忙
最佳答案
至少从理论上讲,使用GCH(Gnu预编译头)很容易。
如何创建GCH
只需使用gcc <compiler-options> myfile.h
即可。这将创建myfile.h.gch
。您可以使用-o <name>
指定输出文件的名称。
如果头文件是C++,则必须将其命名为myfile.hpp
或myfile.hh
,否则GCC会尝试将其编译为C并可能失败。另外,您可以使用-x c++-header
编译器选项。
如何使用GCH
将myfile.h.gch
与myfile.h
放在同一目录中。然后,至少在编译器选项相同的情况下,它将自动代替myfile.h
使用。
如果您不想(或可以)将*.gch
放在*.h
的同一目录中,则可以将它们移动到目录中,例如./gch
,然后将-Igch
选项添加到编译器命令中。
如何知道您的GCH正在被使用
使用gcc -H <compiler-options> myfile.c
。那将列出包含的文件。如果您的myfile.h.gch
没有出现或具有x
,则说明有问题。如果显示带有!
,那就恭喜!您正在使用它。