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

LLVM编译过程中链接文件出现ld.gold内部错误如何解决?

LLVM 12 编译Gold链接器内部错误修复方案

完整报错信息:
/usr/bin/ld.gold: internal error in open, at ../../gold/descriptors.cc:99
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

该错误是Gold链接器处理超大型共享库时的已知问题,根源是链接过程中打开的文件描述符数量超出进程默认上限,触发链接器内部崩溃。可按以下步骤修复:

  • 临时调高当前会话的文件描述符上限,执行命令:
    ulimit -n 65535
    该配置仅在当前终端生效,编译结束后自动恢复默认值,不会修改系统全局设置。
  • 调整LLVM CMake编译参数,降低链接阶段负载:
    重新运行CMake配置时添加如下参数:
    • -DLLVM_PARALLEL_LINK_JOBS=1:强制同一时间仅运行1个链接任务,避免多链接任务并行抢占系统资源
    • -DLLVM_USE_SPLIT_DWARF=ON:开启调试信息拆分特性,大幅降低链接阶段的内存开销和文件操作量
    • -DCMAKE_BUILD_TYPE=Release:如果不需要调试版本的LLVM,指定编译为Release版本,省略调试信息进一步降低链接压力
  • 若上述操作后仍报错,可将binutils升级到2.36及以上版本,该版本修复了Gold链接器多线程场景下的文件描述符管理漏洞。
  • 内存不足适配:如果后续再次出现链接内存溢出问题,可将swap分区扩容到16GB,16GB物理内存的设备建议swap容量至少与物理内存持平,才能满足LLVM全量编译的资源需求。

内容的提问来源于stack exchange,提问作者Siddhartha Dhar Choudhury

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:30:05