在CentOS 7上未找到GLIBCXX_3.4.21

2vuwiymt  于 2022-11-07  发布在  其他
关注(0)|答案(5)|浏览(253)

我最近将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。

4ktjp1zp

4ktjp1zp1#

尝试export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64

nwwlzxa7

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文件夹,它就成了工作。

bxpogfeg

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
希望这对你有帮助。

imzjd6km

imzjd6km4#

找到gcc的安装位置并更新LD_LIBRARY_PATH
例如,
1./usr/本机/gcc/7.2.0/
1.设置程序库路径

14ifxucb

14ifxucb5#

只是你的libstdc++.so.6不包括GLIBCXX_3.4.21,所以你需要替换那个库。
当我用strings libstdc++.so.6.0.28 | grep GLIBCXX检查libstdc++.so.6.0.28时,输出为:

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_DEBUG_MESSAGE_LENGTH

所以用libstdc++.so.6.0.28重新创建symbolic会修复你的问题(也修复了我的问题;)).

相关问题