如何解决官方 Unreal 开发容器中的 `amd64_is_imm32 (disp)` 断言错误?

How do I solve `amd64_is_imm32 (disp)` assertion error in official Unreal dev container?

我正在尝试使用 EpicGames 提供的 official dev container,但是在构建引擎中的示例项目之一时,我遇到了这个断言错误:

Setting up Mono
Start UAT: mono AutomationTool.exe BuildCookRun -utf8output -clientconfig=Shipping -serverconfig=Shipping -project=/home/ue4/UnrealEngine/Templates/TP_FirstPerson/TP_FirstPerson.uproject -noP4 -cook -build -stage -prereqs -pak -archive -server -platform=Linux -serverplatform=Linux -nodebuginfo -allmaps -archivedirectory=/home/ue4/UnrealEngine/Templates/TP_FirstPerson/dist
V: mono_create_corlib_exception_0
* Assertion at mini-amd64.c:214, condition `amd64_is_imm32 (disp)' not met

一些在线搜索告诉我单声道与 Unreal 捆绑在一起。我只是不知道这个断言在寻找什么或如何解决它。

编辑:为未来的读者添加上下文。

我使用的是 M1 mac 和 M1 Docker 桌面应用程序。我最好的猜测是支持 Docker for Mac 的 VM 不支持接受的答案中提到的 CPU intrinsic function

我通过启动 EC2 Linux 实例并尝试以相同的方式在 docker 中构建来解决问题,并且解决了错误。

您提供的处理器不支持所需的 CPU 内在的立即数 32 位文字参数。

这个问题主要是由较旧的 CPU 引起的,在这种情况下需要 CPU 升级。

如果这出现在新处理器上:

此问题可能是由不支持内部调用的虚拟化软件中的软件 CPU 仿真引起的。

确保在 BIOS 设置中打开虚拟化设置以避免软件 CPU 仿真。