如果是从源代码编译出来的UE4, 明明代码完全一样, 不同机器编译出来的dll却无法兼容, 这对于多分支开发非常不方便.

在老版本里有个通过版本号判断的逻辑, 新版本改没了. 分析UE4源码后发现目前是通过BulidId来判断dll跟引擎是不是兼容的. 那BuildId是哪里来的呢?



其实像发布的UE4版本是通过"-Formal"参数来生成固定的BuildId的, 不过我们也可以直接修改Engine/Build/Build.version来生成固定的BuildId:

改完后如果代码一样, 不同机器编译出来的引擎也能够打开同个工程的dll 了
参考资料
https://udn.unrealengine.com/questions/506626/view.html
https://udn.unrealengine.com/questions/475415/view.html

本文探讨了UE4源代码编译时,如何解决不同机器编译出的dll不兼容问题。关键在于理解并利用BuildId,通常正式版本使用'-Formal'参数生成固定BuildId。通过编辑Engine/Build/Build.version文件,可以确保相同代码在不同机器上编译的引擎能打开同一工程的dll。参考链接提供了详细解决方案。
最低0.47元/天 解锁文章
1460





