folk需要什么头文件_什么是UBT?

fe34d103a279795f106e41e99594d7da.png

UE4是由多个模块组成的,不仅包含虚幻源代码的模块,还有创建项目时生成的模块,如果自己写了插件里面还有插件的模块,每个模块都有自己的功能实现,通过build.cs也有自己的编译方式,里面包含了定义的模块的依赖关系、额外的库、路径等信息。这些文件被编译成dll文件,并通过单一的可执行文件进行加载。

需要注意的是,开发环境的项目文件的编译是一个独立的过程。

要想更深入的理解UBT,不得不提及与UBT相关的几个方面:

Targets、modules、BuildConfigration、IWYU、

UBT支持编译多种TargetType:

  • Game - 需要烘焙数据来运行的独立游戏;
  • Client - 与Game相同,但包不含任何服务器代码,适用于联网游戏。
  • Server - 与Game相同,但不包含客户端代码,适用于联网游戏种的独立服务器。
  • Editor - 扩展编辑器的一种targetType。
  • Program - 基于虚幻引擎打造的独立工具程序。

Target

Target是通过C#源文件声明的,扩展名为.target.cs,并存储在项目的 Source 目录下。每个.target.cs文件都声明一个类,从TargetRules基类衍生而来,并设置属性来控制如何从其构造函数进行编译。当要求编译目标时,虚幻编译工具将编译target.cs文件,并在其中构造类来确定其设置。

类的名称必须与在其中声明这个类的文件的名称相匹配,后跟“Target”(例如,MyProject.target.cs定义类“MyProjectTarget”)。

using UnrealBuildTool;
using System.Collections.Generic;
public class MyProjectTarget :TargetRules
{
    public MyProjectTarget(TargetInfo Target) : base(Target)
    {
        Type = TargetType.Game;
        // 此处为其他属性
    }
}

除此之外,在父类里面还定义了多个可以获取或者更改的变量。

其中常用的如下:

  • 只读属性

Name (String):此目标的名称。

Platform (UnrealTargetPlatform):编译此目标所针对的平台。

Configuration (UnrealTargetConfiguration):正在被编译的配置。

读/写属性

Type (TargetType) 目标类型。

bUsesSteam (Boolean) 目标是否使用Steam。

bUsesCEF3 (Boolean) 目标是否使用CEF3。
等等多种属性。

所有属性参照以下网址:

Targets​docs.unrealengine.com

Modules

模块是UE4的构建模块。引擎是由大量的模块集合实现的,开发游戏的时候提供自己的模块来进行扩充。每个模块都包含了一组功能,并且可以提供公共接口和编译环境(包括宏、路径等)来让其他模块使用。

模块是通过C#源文件声明的,扩展名为.build.cs,存储再项目的Source目录下。属于一个模块的C++源代码与.build.cs文件并列存储,或者存储再他的子目录种。每个.build.cs都声明一个类,从ModuleRules基类衍生而来,并设置属性来控制如何从其构造函数进行构建,这些build.cs文件都由UBT编译。 并被构造来确定整个编译环境。

.build.cs文件的典型结构如下。

using UnrealBuildTool;
using System.Collections.Generic;
public class MyModule :ModuleRules
{
    public MyModule(ReadOnlyTargetRules Target) : base(Target)
    {
        // Settings go here
    }
}

与Target相同,它也有父类提供的默认变量以供开发者使用:

与Target不同的是,它里面的变量都是可以修改的读/写变量。

如:Type(ModuleType) 模块类型 等

BuildConfiguration

UBT将从以下位置中的XML配置文件读取设置:

  • Engine/Saved/UnrealBuildTool/BuildConfiguration.xml
  • User Folder/AppData/Roaming/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
  • My Documents/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml

配置文件里面有很多参数,可以自定义,了解其中的参数含义可以自定义配置BuildConfiguration.xml来改变编译配置:

详细的参数列表参照下面链接:

Build Configuration​docs.unrealengine.com

IWYU(Include what you use)

顾名思义:只包含你需要的头文件。

之前的引擎版本大概是4.16之前,包含头文件Engin.h或UnrealEd.h就可以包含大部分你使用到的库,通过预编译头文件(PCH)快速编译这些文件即可达成较快的编译时间。但随着引擎的更新,这成为了一个瓶颈。

所以,引擎添加了IWYU规则。也就是只包含你所需要的头文件依赖,这样可以减小项目的不必要依赖,精简项目,并且可以大大减少编译时间。

编写C++代码的时候,需要遵循以下四个原则:

1.所有头文件只需要添加必要的依赖头文件;

2..cpp文件首先包含自己对应的.h文件(也就是要放在第一行);

3.PCH文件不再是显示包含;

4.不再只包含单个头文件;

IWYU​docs.unrealengine.com

其次还有Project Files for IDEs

Project Files for IDEs​docs.unrealengine.com

其余比如二进制文件版本划分:

二进制文件版本划分​docs.unrealengine.com

上一篇:UBT和UHT是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值