如何在AWS官方Rocky Linux上安装静态库(如libstdc++、libm、libc)
在Rocky Linux 8/9中解决静态编译缺失静态库的问题
问题背景
在Rocky Linux 8/9上使用g++ -static编译时,出现链接错误:
/usr/bin/ld: cannot find -lstdc++ /usr/bin/ld: cannot find -lm /usr/bin/ld: cannot find -lc
原因是系统默认未安装64位静态库文件,仅存在32位版本及动态库。
解决方案
1. 安装C标准库静态文件(libc.a、libm.a)
执行以下命令安装glibc-static包:
sudo yum install glibc-static.x86_64
2. 安装C标准库静态文件(libstdc.a)
libstdc++-static包不在默认基础仓库中,需先启用对应仓库再安装:
- Rocky Linux 8:启用PowerTools仓库后安装
sudo yum config-manager --set-enabled powertools sudo yum install libstdc++-static.x86_64 - Rocky Linux 9:启用CRB(CodeReady Builder)仓库后安装
sudo yum config-manager --set-enabled crb sudo yum install libstdc++-static.x86_64
3. 验证安装结果
执行以下命令检查64位静态库是否存在:
ls /usr/lib64/libc.a /usr/lib64/libm.a /usr/lib/gcc/x86_64-redhat-linux/*/libstdc++.a
若输出对应文件路径,则安装成功,此时使用g++ -static编译即可正常完成链接。
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

