如何解决官方 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 仿真。
我正在尝试使用 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 仿真。