【UE5 C++】UBT与UHT

UE有一组用于自动执行编译虚幻引擎过程 的工具,包括 虚幻编译工具(UnrealBuildTool)虚幻头工具(UnrealHeaderTool) (以及其他工具)。实现这一套工具的目的是为了简化多平台编译,方便你配置各个平台的参数和编译选项

Build.cs

描述每个模块的环境依赖信息,表示项目所用到的模块

可以看到,默认是带有Core、CoreUObject、Engine、InputCore模块

引擎刚创建VS的时候会默认带有这些模块

Target.cs

为目的平台所进行的一些设置或者是特定平台进行的一些设置,它可以包含一些头文件,或者是一些库或者是一些编译器

Target.cs,Build.cs都是为UBT服务的

UnrealBuildTool (UBT)

编译每个模块并处理相关依赖

UnrealHeadTool(UHT)

收集头文件,编译后生成反射数据,这些反射数据会生成一个generated.h或者generate.cpp文件

当头文件发生变化时,虚幻引擎内部调用UHT生成新的反射数据然后存储在generated.cpp或者generated.h文件中

UBT和UHT的协作

我们要知道,我们写的UE4代码不是标准的C++代码,是基于UE4源代码层层改装了很多层的(如反射),所以,UHT将UE4代码转化成标准的C++代码,而UBT负责调用UHT来实现这个转化工作的,转化完以后,UBT调用标准C++代码的编译器来将UHT转化后的标准C++代码完全编译成二进制文件,整体上看,UHT是UBT的编译流程的一部分


参考:

https://zhuanlan.zhihu.com/p/400473355

https://www.bilibili.com/video/BV1Dc411f7nx?p=3\&vd_source=abf3407e623fe554d6fad989b8955a48

相关推荐
汉克老师37 分钟前
GESP5级C++考试语法知识(贪心算法(一)课堂例题精讲)
c++·贪心算法·gesp5级·gesp五级·贪心规律
墨染千千秋1 小时前
C++头文件的使用,和各个头文件与头文件用处
c++
呱呱巨基1 小时前
Linux 基础IO
linux·c++·笔记·学习
旖-旎1 小时前
深搜练习(N皇后)(10)
c++·算法·深度优先·力扣
头发够用的程序员2 小时前
C++和Python面试经典算法汇总(一)
开发语言·c++·python·算法·容器·面试
水龙吟啸2 小时前
数据结构与算法随机复习–Day1
数据结构·c++·算法
十五年专注C++开发3 小时前
浅谈LLVM
开发语言·c++·qt·clang·llvm
白夜11173 小时前
C++(标签派发 Tag Dispatching)
开发语言·c++·笔记·算法
王老师青少年编程3 小时前
csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:凯撒密码
c++·字符串·csp·凯撒密码·高频考点·信奥赛·一等奖
CSCN新手听安4 小时前
【Qt】Qt窗口(六)QMessageBox消息对话框的使用
开发语言·c++·qt