背景:
在学习unreal过程中,发现老师说,如果你在.h文件中声明一个别人写好的类(通常是引擎或插件提供的类),并在.cpp文件中引用相应的头文件,这样做可能会导致编译速度更快。
原理:
-
预编译头文件(PCH)的重用:Unreal Engine使用预编译头文件来提高编译速度。当你在.h文件中声明一个类并在.cpp文件中引用相应的头文件时,编译器会将这些头文件添加到PCH中。如果其他部分的代码已经使用了相同的PCH,那么这些头文件不需要再次编译,从而加快了编译速度。
-
避免重新编译依赖项:如果你只在.cpp文件中引用头文件而没有修改头文件本身,那么编译器只需要重新编译与该.cpp文件相关的部分,而不需要重新编译依赖于相应头文件的其他部分。这可以减少编译时间,因为不必重新编译整个项目。
-
编译器优化:一些编译器会在编译过程中执行优化,例如增量编译和缓存编译结果。如果你只是引用头文件而没有实际修改代码,编译器可以更容易地识别哪些部分是可以重用的,从而提高编译速度。
总之,合理地组织代码并最小化不必要的重新编译可以显著提高Unreal Engine项目的编译速度,同时提高开发效率。这就是为什么在.h文件中声明别人写好的类,然后在.cpp文件中引用相应的头文件可能会导致编译更快的原因之一。