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

使用Clang编译PDFium时提示找不到-latomic库的问题求助

解决编译PDFium时ld.lld找不到-latomic的问题

错误信息

ld.lld: error: unable to find library -latomic
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

已排查环境

  • 已安装组件:
    • libatomic_ops 7.6.14-1
    • clang 14.0.6-2
    • lib32-clang 14.0.6-1
    • libatomic1
  • LD_LIBRARY_PATH配置:
    $ export LD_LIBRARY_PATH=/usr/lib64:/usr/lib32:/usr/local/lib:/usr/lib
    $ sudo ldconfig
    
  • 尝试过Debian、Arch、Ubuntu系统

解决步骤

1. 针对Android交叉编译场景(项目为Android版PDFium)

该项目是面向Android的PDFium分支,编译时需使用Android NDK提供的libatomic,而非系统安装的主机库:

  • 检查BUILD.md中NDK的配置流程,确保已正确设置ANDROID_NDK环境变量,指向完整的NDK路径
  • 在gn构建参数(args.gn)中添加NDK库路径的链接参数:
    extra_ldflags = ["-latomic", "-L${android_ndk_root}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/${android_arch}"]
    
    其中android_arch替换为你编译的目标架构(如arm64-v8a、x86_64)

2. 主机编译场景(若尝试编译本地版本)

  • 显式指定libatomic的路径给链接器:
    在编译命令或gn的extra_ldflags中添加库的绝对路径,例如64位系统:
    extra_ldflags = ["/usr/lib/x86_64-linux-gnu/libatomic.so"]
    
  • 若系统中缺少libatomic.so的软链接(仅存在libatomic.so.1),手动创建:
    sudo ln -s /usr/lib/x86_64-linux-gnu/libatomic.so.1 /usr/lib64/libatomic.so
    
    32位系统对应路径调整为/usr/lib/i386-linux-gnu/

3. 通用排查

  • 用clang++ -v重新编译,查看完整的链接命令,确认链接器搜索的库路径是否包含libatomic所在目录
  • 检查libatomic1包是否安装完整,可重新安装:
    # Debian/Ubuntu
    sudo apt reinstall libatomic1
    # Arch
    sudo pacman -Syu gcc-libs  # libatomic属于gcc-libs包
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:55:23