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

M1芯片Mac编译D程序遭遇链接错误求助

在M1 macOS Sonoma上解决DMD 2.106编译链接错误

核心问题分析

你遇到的链接错误根源是架构不匹配:系统默认以arm64目标编译,但你安装的DMD及配套libphobos2库是x86_64架构;手动指定x86_64后报错,大概率是旧编译产物残留或链接参数传递不全导致。


解决方案1:强制x86_64架构编译链接

  1. 清理旧编译产物,避免残留损坏的目标文件:
    rm -f app.o app
    
  2. 用DMD直接指定架构编译,自动传递正确的链接器参数:
    dmd app.d -arch x86_64
    
    或显式传递链接器架构参数:
    dmd app.d -m64 -L-arch -Lx86_64
    

解决方案2:安装arm64原生DMD(推荐)

如果希望获得原生arm64性能,可替换为适配M1的DMD版本:

  1. 卸载现有x86_64版本:
    sudo rm -rf /Library/D/dmd
    sudo rm -f /usr/local/bin/dmd /usr/local/bin/dub /usr/local/bin/rdmd
    
  2. 下载适配macOS arm64架构的DMD安装包完成安装。
  3. 重新编译程序,无需额外参数:
    dmd app.d
    

额外排查验证步骤

  • 检查当前DMD的架构:
    file /Library/D/dmd/bin/dmd
    
    输出若含x86_64则为x86_64版本,含arm64则为原生版本。
  • 验证编译生成的目标文件架构:
    dmd app.d -c
    file app.o
    
    确认架构与你指定的编译目标一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:45:36