SuperAPI AI 工具集

ue-module-build-system

写作与研究

查看项目

更新于 10-16 09:53

技能介绍

用途:该技能覆盖 UnrealBuildTool(UBT)的 ModuleRules(.Build.cs)与 TargetRules(.Target.cs)、.uproject 与 .uplugin 描述文件、模块注册(Modules/ModuleManager.h 中的 IModuleInterface 与 IMPLEMENT_MODULE)、插件发现(Interfaces/IPluginManager.h),以及这些文件引发的编译器、链接器、UHT 与 UBT 错误。目标引擎为 UE 5.8,API 依据 5.8 头文件与 UBT 源码核验。

主要能力与用法:Build.cs 中区分 PublicDependencyModuleNames、PrivateDependencyModuleNames、PublicIncludePathModuleNames、DynamicallyLoadedModuleNames;建议先私有后公开以控制编译时间。Public 头文件中出现的类型需要 <MODULENAME>_API 导出宏,缺失是 LNK2019 的常见原因。IWYU 默认 IWYUSupport.Full,可用 KeepAsIs 保留手写包含。可设置 bWarningsAsErrors、CppCompileWarningSettings 各警告级别、bUseUnity、CppStandard 等,并可 AddEngineThirdPartyPrivateStaticDependencies。

Target.cs 类名必须为 <FileName>Target,需设置 Type、DefaultBuildSettings、IncludeOrderVersion 与 ExtraModuleNames;V7 为 5.8 模板默认,建议固定显式值。.uproject 的 Modules 支持 Type 与 LoadingPhase,Plugins 支持 Enabled、Optional、TargetAllowList 等。.uplugin 需声明所依赖插件,否则 UBT 会告警;运行时模块不得包含编辑器头文件,编辑器代码用 #if WITH_EDITOR 和 if (Target.bBuildEditor) 隔离。新建模块后需在 .uproject、各 Target.cs 的 ExtraModuleNames 及使用方依赖列表中注册。

限制:资料仅覆盖 UE 5.8,旧写法列为已弃用;Game Feature 插件相关内容属于其他技能,本技能未展开。未提供收费、平台支持范围与性能效果等信息。完整字段与引擎模块表见资料中的引用文档。