C++项目编译失败,UnrealBuildTool项目添加ShaderCompileWorker Win64 Development -waitmutex参数,调试后发现报错的原因是 incredible build的工具xgconsole调用失败,在控制面板删除/卸载后运行正常。(直接禁用vs插件不行)
内部参数不能用作项目名称 如:TEST、MODULE、MODULEWITHSUFFIX、PLUGIN、RECEIPT、DEBUG、DEBUGGAME、DEVELOPMENT、SHIPPING、 -DEFINE、-REMOTEROOT、-NOEDITOR、-NOEDITORONLYDATA、-DEPLOY、-PROJECTFILES、-XCODEPROJECTFILE、-MAKEFILE、-CMAKEFILE、-QMAKEFILE、-KDEVELOPFILE、-CODELITEFILE、-EDITORRECOMPILE、-PRECOMPILE、-USEPRECOMPILED等,(很坑的命令) 否则项目编译失败: 如:error : Couldn’t find target rules file for target ‘D:\UE4_14\test\test.uproject’ in rules assembly 'UE4Rules, Version=0.0.0.0, Culture=neutral, 错误。
主要负责预编译生成makefile文件,包括Target.cs配置和uproject文件(json格式,格式不正确,unrealbuildTool不一定能检测到,可能出现命令提示CrashOrAssert错误)
编辑插件,需要关闭ueeditor,否则UeEditor-**.lib生成失败。
UE4在C++编译开始前,使用工具UnrealHeaderTool,对C++代码进行预处理,收集出类型和成员等信息,并自动生成相关序列化代码。然后再调用真正的C++编译器,将自动生成的代码与原始代码一并进行编译,生成最终的可执行文件
Ue4通过Binaries\UE4Editor.modules文件判断版本,UE4Editor.modules中BuildId保持和Plugin中一致(确保ue4editor都关闭了,ue4editor已打开版本可能和正在编译版本不一致)