我最近将CentOS上的gcc版本从4.7更新到5.4,但是现在当我编译程序时,我收到以下错误
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
我找到了一些solutions,但我仍然无法解决这个问题。这些是我在whereis gcc
中找到的路径
gcc: /usr/bin/gcc /usr/lib/gcc /usr/local/bin/gcc /usr/local/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz
并将此libstdc包用于CentOS。
5条答案
按热度按时间4ktjp1zp1#
尝试
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
nwwlzxa72#
也许对某些人会有帮助:我安装了devtoolset-7,但没有GLIBCXX_3.4.21,最高版本是GLIBCXX_3.4.19。我一直在寻找解决方案。对我有效的是:我克隆了gcc 7.3 repo,进行了构建和安装。然后复制了libstdc++.so.6和libstdc++.so.6.0.24到devtools-7,lib 64文件夹,它就成了工作。
bxpogfeg3#
我没有sudo访问我的CentOS机器,所以我用conda安装了gcc。如果你用conda安装了gcc,上面的答案将不起作用。检查你的gcc安装路径为:
$ which gcc
输出:
/home/ags/miniconda3/envs/GE/bin/gcc
这说明gcc安装在
GE
conda环境中,现在导出LD_LIBRARY_PATH作为此环境下lib
目录的路径。export LD_LIBRARY_PATH=/home/ags/miniconda3/envs/GE/lib:$LD_LIBRARY_PATH
希望这对你有帮助。
imzjd6km4#
找到gcc的安装位置并更新LD_LIBRARY_PATH
例如,
1./usr/本机/gcc/7.2.0/
1.设置程序库路径
14ifxucb5#
只是你的
libstdc++.so.6
不包括GLIBCXX_3.4.21
,所以你需要替换那个库。当我用
strings libstdc++.so.6.0.28 | grep GLIBCXX
检查libstdc++.so.6.0.28
时,输出为:所以用
libstdc++.so.6.0.28
重新创建symbolic会修复你的问题(也修复了我的问题;)).