You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M2 MacBook Pro(OS 14.1)编译Ada程序遇GNAT链接错误求助

解决方案:M2 MacBook Pro上Ada编译ld断言错误问题

核心问题

在OS 14.1系统的M2 MacBook Pro上,使用alr build编译Ada程序时触发链接器断言错误:

ld: Assertion failed: (resultIndex < sectData.atoms.size()), function findAtom, file Relocations.cpp, line 1336.

可行解决方法

1. 回退Xcode命令行工具版本

最新版Xcode命令行工具的ld64链接器存在兼容性问题,可回退到稳定版本(如14.3.1或15.0):

  • 卸载当前工具:
    xcode-select --uninstall
    
  • 从Apple开发者平台下载对应版本的Command Line Tools并安装
  • 验证版本:
    clang --version
    

2. 切换兼容的GNAT工具链版本

当前使用的GNAT 13.2.1与新版链接器适配不佳,切换到12.x版本:

  • 选择指定工具链:
    alr toolchain --select gnat_native=12.2.1
    
  • 清理并重新编译:
    alr clean && alr build
    

3. 强制使用旧版链接器

在项目的.gpr配置文件中添加链接器参数,强制调用ld_classic:

package Linker is
   for Default_Switches ("Ada") use ("-Wl,-ld_classic");
end Linker;

修改后重新执行alr build。

4. 重置Alire环境排除缓存问题

清除Alire缓存并重新初始化项目,排除依赖损坏问题:

alr clean --all
alr update
alr init --bin mytestproj
cd mytestproj
alr build

内容的提问来源于stack exchange,提问作者user17931281

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:52:44