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

Mac Silicon环境下Alire运行失败:LC_RPATH重复问题咨询

解决Mac Silicon上Alire GTKAda项目运行时dyld重复LC_RPATH错误

问题背景

基于GTKAda的Alire项目编译构建正常,但执行alr run时触发dyld错误,提示重复的LC_RPATH条目:

Building hello_gtk=0.1.0-dev/hello_gtk.gpr...
gprbuild: "hello_gtk" up to date
✓ Build finished successfully in 2.25 seconds.
dyld[22996]: duplicate LC_RPATH '/Users/Roger/.local/share/alire/toolchains/gnat_native_14.2.1_cc5517d6/lib' in /System/Volumes/Data/Ada_Projects/hello_gtk/bin/hello_gtk
dyld[22996]: duplicate LC_RPATH '/Users/Roger/.local/share/alire/toolchains/gnat_native_14.2.1_cc5517d6/lib'
------------------
(program exited with code: 1)

解决方案

1. 手动清理二进制文件中的重复RPATH

使用install_name_tool直接修改生成的二进制文件:

  • 先查看当前RPATH条目,确认重复项:
    otool -l /System/Volumes/Data/Ada_Projects/hello_gtk/bin/hello_gtk | grep -A2 LC_RPATH
    
  • 删除重复的路径条目:
    install_name_tool -delete_rpath '/Users/Roger/.local/share/alire/toolchains/gnat_native_14.2.1_cc5517d6/lib' /System/Volumes/Data/Ada_Projects/hello_gtk/bin/hello_gtk
    
  • 完成后直接运行alr run测试。

2. 修改项目GPR文件避免重复添加RPATH

打开项目的hello_gtk.gpr文件,检查链接器配置部分:

  • 查找类似package Linker is for Default_Switches ("Ada") use (...);的配置,确认是否重复添加了目标RPATH。
  • 如果发现重复的-Wl,-rpath,/Users/Roger/...条目,删除多余的重复项,保存后重新构建:
    alr clean && alr build
    

3. 重置Alire工具链

可能是工具链配置异常导致重复注入路径:

  • 卸载当前有问题的工具链:
    alr toolchain uninstall gnat_native_14.2.1_cc5517d6
    
  • 重新安装对应版本的工具链:
    alr toolchain install gnat_native=14.2.1
    
  • 重新构建项目后运行测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 17:42:42