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

CentOS7(arm64)编译HAProxy2.2时找不到-latomic的解决求助

问题:CentOS7(arm64)编译HAProxy 2.2 + Lua5.3时出现-latomic缺失错误

编译HAProxy时执行命令:

make TARGET=linux-glibc USE_PCRE=1 USE_PCRE_JIT=1 USE_OPENSSL=1 USE_ZLIB=1 USE_LINUX_TPROXY=1 USE_REGPARM=1 USE_LUA=1 USE_THREAD=1 USE_TFO=1

出现错误:

CC      src/version.o
LD      haproxy
/usr/bin/ld: cannot find -latomic
collect2: error: ld returned 1 exit status

链接器详细日志:

attempt to open //usr/aarch64-redhat-linux/lib64/libatomic.so failed
attempt to open //usr/aarch64-redhat-linux/lib64/libatomic.a failed
attempt to open //usr/lib64/libatomic.so failed
attempt to open //usr/lib64/libatomic.a failed
attempt to open //usr/local/lib64/libatomic.so failed
attempt to open //usr/local/lib64/libatomic.a failed
attempt to open //lib64/libatomic.so failed
attempt to open //lib64/libatomic.a failed
attempt to open //usr/aarch64-redhat-linux/lib/libatomic.so failed
attempt to open //usr/aarch64-redhat-linux/lib/libatomic.a failed
attempt to open //usr/local/lib/libatomic.so failed
attempt to open //usr/local/lib/libatomic.a failed
attempt to open //lib/libatomic.so failed
attempt to open //lib/libatomic.a failed
attempt to open //usr/lib/libatomic.so failed
attempt to open //usr/lib/libatomic.a failed
ld: cannot find -latomic

已尝试的操作:

  • 创建软链接:
    ln -s /usr/lib64/libatomic.so.1.2.0 /usr/lib/libatomic.so
    
  • 安装devtoolset-7-libatomic-devel库:
    yum install centos-release-scl-rh
    yum install devtoolset-7-libatomic-devel
    

解决方案

1. 创建正确的软链接到链接器搜索路径

先确认系统中libatomic文件的位置:

find / -name "libatomic*"

如果找到/usr/lib64/libatomic.so.1.2.0,直接在链接器搜索的/usr/lib64目录下创建软链接:

ln -s /usr/lib64/libatomic.so.1.2.0 /usr/lib64/libatomic.so

2. 启用devtoolset-7环境变量

安装devtoolset-7后,必须先加载对应的环境,否则编译时不会使用该工具链的库:

source /opt/rh/devtoolset-7/enable

加载完成后重新执行HAProxy的编译命令。

3. 编译时手动指定库路径

若上述方法无效,可在编译命令中通过LDFLAGS强制指定libatomic的路径:

make TARGET=linux-glibc USE_PCRE=1 USE_PCRE_JIT=1 USE_OPENSSL=1 USE_ZLIB=1 USE_LINUX_TPROXY=1 USE_REGPARM=1 USE_LUA=1 USE_THREAD=1 USE_TFO=1 LDFLAGS="-L/usr/lib64 -latomic"

4. 安装系统原生libatomic开发包

尝试安装CentOS7 arm64原生的libatomic-devel包:

yum install libatomic-devel

若yum源存在该包,安装后链接器会自动识别到对应的库文件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:30:44