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

Windows下用msys2编译Makefile遭遇collect2致命错误

解决msys2编译AOBTM时ld段错误的方案
  • 升级binutils版本
    当前使用的binutils-2.37-5版本较旧,Windows平台下该版本链接器存在已知段错误问题。打开msys2终端执行:

    pacman -Syu binutils
    

    升级至最新稳定版后重新编译。

  • 调整编译参数
    进入src目录的Makefile,修改LDFLAGS相关配置:

    • 添加-Wl,--no-keep-memory,让链接器改用磁盘缓存替代内存缓存,避免内存溢出触发段错误;
    • 或者尝试添加-static参数,切换为静态链接,排查动态链接库冲突问题。
  • 清理编译缓存重试
    先清除之前编译生成的残留文件:

    make clean
    

    再重新执行编译命令:

    make
    
  • 分析ld.exe.stackdump定位问题
    打开生成的ld.exe.stackdump文件,查看末尾的错误堆栈信息,定位是否由特定目标文件导致链接失败。如果能找到问题文件,尝试单独编译该文件再手动链接:

    gcc -c 问题文件名.c -o 问题文件名.o
    ld -o run.exe 其他目标文件.o 问题文件名.o
    

    逐步排查触发错误的具体文件。

  • 切换msys2环境类型
    如果当前用的是MSYS环境,尝试切换到MINGW64或MINGW32终端(从Windows开始菜单找到对应入口),不同环境的工具链配置不同,可能解决兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:57:15