首页
/ DagorEngine项目在Windows ARM64平台上的DaScript AOT编译问题解析

DagorEngine项目在Windows ARM64平台上的DaScript AOT编译问题解析

2025-06-29 13:59:46作者:廉皓灿Ida

背景概述

在DagorEngine游戏引擎的开发过程中,开发团队遇到了一个关于DaScript AOT(提前编译)在Windows ARM64平台上的编译问题。这个问题特别出现在构建OuterSpace示例项目时,虽然AOT编译器本身能够成功构建,但在实际应用阶段却出现了失败。

问题本质

根据技术分析,当前DaScript的AOT编译器设计主要是针对x86_64架构构建的,目的是为了在x86_64机器上运行。然而,游戏本身是可以为ARM64平台构建的。这种架构差异导致了编译和运行时的不兼容问题。

技术细节

  1. 编译阶段:构建过程显示,OuterSpace示例项目在ARM64平台上确实能够完成编译和链接过程,生成可执行文件outer_space-dev.exe。链接器(lld-link)虽然报告了一些关于调试段名称过长的警告,但这并不影响最终的可执行文件生成。

  2. 运行时问题:真正的问题出现在运行时阶段。可执行文件虽然生成成功,但无法正常启动。这主要是因为:

    • Jolt物理引擎中的静态构造函数存在问题
    • DaScript的AOT编译失败导致缺少必要的脚本组件

解决方案与进展

开发团队已经确认:

  • 在代码主分支(master)上,编译和链接过程都能正常工作
  • 针对Jolt物理引擎静态构造函数的问题正在进行修复
  • 将很快推送更新到代码库中

当前状态

最新测试表明,OuterSpace示例项目已经能够在Windows ARM64平台上成功构建并运行。这标志着该平台兼容性问题已经得到初步解决。

技术启示

这个案例展示了跨平台开发中常见的架构兼容性问题。特别是当涉及到:

  • 不同指令集架构(如x86_64和ARM64)的混合使用
  • 提前编译(AOT)技术的平台限制
  • 第三方库(如Jolt物理引擎)的跨平台行为差异

开发团队通过逐步分析和针对性修复,最终解决了这个复杂的跨平台兼容性问题,为后续的ARM64平台支持奠定了良好基础。

登录后查看全文
热门项目推荐