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

使用musl-gcc构建时动态加载libatomic.so失败问题排查

问题原因分析
  • Musl libc的原子操作实现特性:Musl libc将原子操作(包括16字节的__atomic_exchange_16这类操作)直接内置在自身库中,不像GNU libc(glibc)会把部分大宽度原子操作拆分到独立的libatomic.so库中。因此使用musl-gcc时,不需要额外添加-latomic链接选项。
  • 错误的链接选项导致依赖缺失:当你给musl-gcc加上-latomic时,它会尝试寻找并链接glibc的libatomic.so,但Musl环境中不存在这个库,所以运行时会出现找不到libatomic.so.1的错误;同时因为错误地依赖了不存在的库,原本Musl内置的__atomic_exchange_16符号也无法被正确解析,导致符号找不到的报错。
  • gcc/clang正常的原因:gcc和clang默认使用glibc,而glibc确实需要通过-latomic来链接大宽度原子操作的外部实现,所以这个选项在glibc环境下是必要且有效的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 12:42:04