一、查看GLIBC版本
strings /usr/lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC
二、CentOS 7.6 下 “GLIBCXX_3.4.20” “GLIBCXX_3.4.21” not found
参考:https://blog.youkuaiyun.com/yexiaoping1122/article/details/105706832
三、相关文档
https://blog.youkuaiyun.com/ternence_hsu/article/details/103045847?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163937489516780265497059%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163937489516780265497059&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~rank_v29-2-103045847.pc_v2_rank_blog_default&utm_term=glibc&spm=1018.2226.3001.4450
四、升级glibc,安装glibc-2.29
- 下载安装包
https://ftp.gnu.org/gnu/glibc/ 选择需要的版本,比如 https://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz - 安装编译依赖模块
apt-get update
apt-get install gawk bison -y - 编译库
mkdir build
cd build
…/configure --prefix=/usr/glibc2.28 --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make - 错误修复
报错信息:prctl.h:5:28: fatal error: asm/prctl.h: No such file or directory
修复参考:安装multilib模块,apt-get install g+±multilib -y - 安装
make install
查看 find / -name “libc.so.6” 的路径,/lib/x86_64-linux-gnu/libc.so.6
查看 依赖库 ls -lh /lib/x86_64-linux-gnu/libc.so.6; /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.24.so
将编译库拷贝 cp /usr/glibc2.28/lib/libc-2.28.so /lib/x86_64-linux-gnu/
更新库依赖运行 ldconfig - 注意事项
a. prefix 安装路径不可以直接选择 usr, 去直接替换系统库,install 的过程会出现 [install-symbolic-link] Segmentation fault (core dumped) 错误
b. 在部分机器里面可能会出现 Segmentation fault (core dumped),建议在docker容器环境下调试
五、glibc,libc,glib 分别是什么
https://blog.youkuaiyun.com/mo4776/article/details/119837501
六、升级glibc,安装gcc-6.5.0
-
下载安装包
gcc release https://gcc.gnu.org/releases.html
ftp://ftp.gnu.org/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.gz 官方FTP
http://ftpmirror.gnu.org 自动选择速度较快的镜像站
下载地址:http://mirror.keystealth.org/gnu/gcc/gcc-6.5.0/gcc-6.5.0.tar.gz -
下载依赖包
运行 ./contrib/download_prerequisites 自动下载和安装依赖包
可以下载到本地,运行脚本也可以,或者是下载到其他机器再运程http拉取也可以 -
编译库
mkdir build
cd build
…/configure --prefix=/usr/local/gcc-6.5.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j 12
make install -
配置
参考:https://blog.youkuaiyun.com/kx453653102/article/details/107686297