【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

相关推荐
千里马-horse5 分钟前
Async++ 源码分析8--partitioner.h
开发语言·c++·async++·partitioner
Lucis__1 小时前
再探类&对象——C++入门进阶
开发语言·c++
北京不会遇到西雅图2 小时前
【SLAM】【后端优化】不同优化方法对比
c++·机器人
jndingxin2 小时前
c++多线程(6)------ 条件变量
开发语言·c++
程序员莫小特2 小时前
老题新解|大整数加法
数据结构·c++·算法
洲覆4 小时前
C++ 模板、泛型与 auto 关键字
开发语言·数据结构·c++
千里马-horse5 小时前
Async++ 源码分析7--parallel_reduce.h
开发语言·c++·async++·parallel_reduce
江公望5 小时前
Qt QThread使用方法入门浅解
c++·qt
叫我龙翔5 小时前
【MySQL】从零开始了解数据库开发 --- 数据表的约束
android·c++·mysql·数据库开发
Yupureki5 小时前
从零开始的C++学习生活 6:string的入门使用
c语言·c++·学习·visual studio