引擎大版本升级、构建流程等工程侧的实操记录。
- 引擎大版本升级实践:4.17 → 4.27:跨版本合并的方法论——按模块合并、进度追踪、POC 先行验证画面、升级收益,以及哪些弯路不要走。
- 引擎升级的编译/链接错误案例集:升级合并后修上万个编译错误的典型分类——类型拆分、纯虚函数新增、签名变化、委托参数变化、宏替换、链接循环依赖。
引擎大版本升级、构建流程等工程侧的实操记录。
跨大版本升级(4.17 → 4.27)合并完代码后,真正耗时间的是修上万个编译错误和一批链接错误。这篇把典型的错误分类记下来,方法论层面的合并/追踪经验另见 引擎大版本升级实践。
大多数错误可以归到几类:官方拆分/重命名了类型、纯虚函数新增、函数签名变化、委托参数个数变化、宏被替换、重载二义性。下面按类型举例。
4.17 里的 FSkeletalMeshResource 在新版本被拆成两个类:
把一个基于 UE4.17 深度定制的项目升级到 4.27,跨了 4.17 → 4.21 → 4.26 → 4.27 多个大版本,合并了 24 万行以上的定制代码、修了上万个编译错误。这篇讲方法论层面的经验:怎么组织合并、怎么追踪进度、哪些弯路不要走。具体的编译/链接错误案例另见 引擎升级的编译链接错误。
跨版本升级的骨架流程(每上一个大版本重复一遍):