CentOS系统下ifort缺失GLIBCXX_3.4.21依赖求助
解决CentOS下ifort提示
GLIBCXX_3.4.21缺失的问题 方法一:通过devtoolset安装高版本libstdc++(推荐)
CentOS默认yum源的libstdc++版本较低,devtoolset提供了隔离的高版本gcc工具链,可满足ifort的依赖需求:
- 安装devtoolset仓库:
sudo yum install centos-release-scl - 安装对应版本的gcc-c++(devtoolset-7对应gcc7,包含
GLIBCXX_3.4.21):sudo yum install devtoolset-7-gcc-c++ - 临时启用高版本环境(当前shell会话生效):
启用后直接运行ifort即可,可通过以下命令验证版本:scl enable devtoolset-7 bashstrings /opt/rh/devtoolset-7/root/usr/lib64/libstdc++.so.6 | grep GLIBCXX_3.4.21 - 永久启用:将
scl enable devtoolset-7 bash添加到~/.bashrc或/etc/profile文件末尾,重启shell后自动生效。
方法二:手动替换libstdc++.so.6(有风险)
注意:此方法会替换系统全局的libstdc++库,可能导致依赖低版本库的系统程序异常,仅在方法一无法使用时尝试
- 查看当前libstdc++.so.6的软链接指向:
ls -l /lib64/libstdc++.so.6 - 备份原文件:
sudo cp /lib64/libstdc++.so.6 /lib64/libstdc++.so.6.bak - 获取包含
GLIBCXX_3.4.21的libstdc++.so.6.0.x文件(可从同架构的高版本Linux系统或编译好的gcc包中提取) - 将新库文件复制到/lib64目录:
sudo cp libstdc++.so.6.0.21 /lib64/ - 更新软链接:
sudo ln -sf /lib64/libstdc++.so.6.0.21 /lib64/libstdc++.so.6 - 验证是否包含目标版本:
strings /lib64/libstdc++.so.6 | grep GLIBCXX_3.4.21
内容的提问来源于stack exchange,提问作者Hari Chand Rathor
相关产品推荐
相关产品推荐

