当前位置: 首页 > article >正文

UE5 UHT GENERATED_BODY() GENERATED_USTRUCT_BODY()

  • 你在 .h 文件中写的 GENERATED_BODY() 宏本身并不是 GetPrivateStaticClass() 函数的声明。

  • 实际上,GENERATED_BODY() 是一个预处理器宏,它会被 Unreal Header Tool (UHT) 处理。

  • UHT 会读取你的 .h 文件,识别 UCLASS() 和 GENERATED_BODY() 等宏,然后 生成额外的 C++ 代码,包括一个与你的类名相关的 *.generated.h 文件。

  • 在这个生成的 .generated.h 文件中,你就能找到 GetPrivateStaticClass() 函数的声明。

  • GENERATED_BODY() 宏的主要作用是 声明 一些必要的成员变量和函数,这些是 Unreal Engine 反射系统所需要的。

  • GetPrivateStaticClass() 函数的 实现 并不是直接在 GENERATED_BODY() 宏展开的代码中。

  • GetPrivateStaticClass() 函数的实现是由 UHT 在编译过程中生成的,并包含在编译后的目标文件(如 .obj 或 .cpp.obj)中。

https://www.reddit.com/r/unrealengine/comments/1brvcpm/compiling_issues_unresolved_external_symbol_in/

  1. 错误的宏 GENERATED_UCLASS_BODY()

    • GENERATED_UCLASS_BODY() 是 Unreal Engine 4 中用于生成类体的宏,但在 Unreal Engine 5 中,它已经被弃用,取而代之的是 GENERATED_BODY()

    • 如果你在 Unreal Engine 5 中使用 GENERATED_UCLASS_BODY(),可能会导致链接错误,因为引擎无法正确生成类的实现。

  2. 缺少 public: 关键字

    • 在 C++ 中,类成员的默认访问权限是 private。如果你在头文件中声明了方法但没有明确指定 public:,这些方法会被视为私有成员,无法在其他地方访问,从而导致链接错误。


http://www.kler.cn/a/455195.html

相关文章:

  • [C/C++]new/delete 和 malloc/free 的区别?
  • Kubernetes 安装 Nginx以及配置自动补全
  • 线性代数行列式
  • Java中使用四叶天动态代理IP构建ip代理池,实现httpClient和Jsoup代理ip爬虫
  • LabVIEW生物医学信号虚拟实验平台
  • 如何高效学习PHP框架源码
  • 【机器学习与数据挖掘实战】案例06:基于Apriori算法的餐饮企业菜品关联分析
  • tauri2使用withGlobalTauri实现注入js脚本也可以使用事件event
  • 最近常用linux、docker命令总结
  • 无法在节点上执行操作 unable to perform an operation on node ‘rabbit@LAPTOP-D0UOMDG9‘
  • Day36汉明距离总和
  • C#-使用StbSharp库读写图片
  • 构建全志 T113 Tina SDK
  • FlaskAPI-路径参数、查询参数
  • 领域自适应与迁移学习
  • 使用 Spring Boot 实现文件上传:从配置文件中动态读取上传路径
  • “AI考训分析系统:让考试和训练更智能、更高效
  • 软件测试干了5年,过于真实了。。。
  • 《计算机组成及汇编语言原理》阅读笔记:p121-p122
  • 智慧城市可以实现哪些方面的监测
  • Linux 搭建 nginx+keepalived 高可用 | Nginx反向代理
  • Python有哪些常用的库
  • 汇编学习(一)
  • 麒麟操作系统服务架构保姆级教程(五)NGINX中间件详解
  • 《Java源力物语》-4.集合府邸的新秀
  • 地理数据库Telepg面试内容整理-数据库设计与性能优化