相信同学们现在开始用C++的开发方式去完成某些功能或是去尝试了解UnrealEngine4内部运用流程,这个过程自然少不了与
Epic自己包装的C++打交道。
当然与UnrealEngine4的C++必须要遵守UE4工程的规则,比如整个工程配置基本是使用[NMaker]配置完成。在代码编译前需要先编译[UnrealHeaderTool]工具,再由[UnrealHeaderTool]去编译我们自己的工程。当然整个编译的过程与UnrealEngine3一样使用命令行编译(为了解决扩平台和脱离IDE)。在整个Windows编译的过程中各种\UnrealEngine\Engine\Build\BatchFiles\文件夹下的批处理文件开始互相调用....
(好吧 通常我们不需要关注这些)。
既然UnrealEngine4有自己的规则,那么我们在摸索中更新会越到各种各样的问题。下面就是笔者遇到的问题集锦分享给大家,希望大家可以快解决问题,少走弯路。
1. 编译时出现下面2条错误的话,请千万不要质疑是UnrealEngine4引擎编译工具有问题或者自动生成的工程配置有问题,问题只有一个就是自己的代码有问题。
如下:
EXEC : error : Failed to generate code for
XXXX(XXXX是自己工程的名称) 和
EXEC : error : UnrealHeaderTool failed for target
‘PandaEditor‘ (platform: Win64, module
info:C:\Users\User\Documents\UnrealProjects\Panda\Intermediate\Build\Win64\PandaEditor\Development
\UnrealHeaderTool.manifest).
这个错误解决方法:请检查代码.h文件中是否存在头文件交叉引用的问题。如果真的需要互相引用请尝试在你的类名前[+class],然后在.cpp中引用头文件进行使用。
当然这个错误是
[UnrealHeaderTool]产生的,[UnrealHeaderTool]排查错误的能力不够强大不能准确的提示编译错误,很多问题会导致这个问题。如果发现[EXEC
: error : Failed to generate code for XX]请同学们仔细排查代码