如何更改 libstdc++.so.6 的版本?

How to change verison of libstdc++.so.6?

我正在尝试将 libstdc++.so.6 从 4.8.3 更改为 3.4.20。

我为什么要这样做?由于此错误:

File "", line 1, in ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /var/lang/lib/python3.6/site-packages/lgraph.cpython-36m-x86_64-linux-gnu.so)

因此,我认为我必须更新版本。 (我也尝试安装 gcc-8.0.1,但要么安装不正确,要么根本不起作用)。

Architecture: 2018 x86_64 x86_64 x86_64 GNU/Linux

Information:

$ bash-4.2# yum info gcc-c++

Installed Packages
Name        : gcc-c++
Arch        : noarch
Version     : 4.8.3
Release     : 3.20.amzn1
Size        : 0.0  
Repo        : installed
From repo   : amzn-main
Summary     : C++ support for GCC

I also ran this command:

bash-4.2# /sbin/ldconfig -p | grep stdc++
    libstdc++.so.6 (libc6,x86-64) => /usr/lib64/libstdc++.so.6
    libstdc++.so (libc6,x86-64) => /usr/lib64/libstdc++.so

顺便说一下,我是在一个 docker 容器上完成所有这些操作(如果这很重要的话)。 program/package 我是 运行 建立在:

Information: 

Architecture: CEST 2018 x86_64 GNU/Linux

server:~$/sbin/ldconfig -p | grep stdc++
    libstdc++.so.6 (libc6,x86-64) => /usr/lib/libstdc++.so.6
    libstdc++.so.6 (libc6) => /usr/lib32/libstdc++.so.6
    libstdc++.so.5 (libc6) => /usr/lib32/libstdc++.so.5
    libstdc++.so (libc6,x86-64) => /usr/lib/libstdc++.so
    libstdc++.so (libc6) => /usr/lib32/libstdc++.so

server:~$gcc --version
gcc (GCC) 8.1.1 20180531

解决此问题的最简单方法是使用较旧的 GCC 安装(例如 GCC 4.8,就像您 运行 所在的机器)进行构建。另一种方法是简单地将所需的库复制到 运行 所在的机器,并将它们的路径放在环境变量 LD_LIBRARY_PATH.

我通过在我的 docker 容器上手动安装 gcc-8.0.1 并将正确的路径添加到 LD_LIBRARY_PATH.

来解决这个问题