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
相关产品推荐
相关产品推荐

