【问题标题】:GLIBCXX_3.4.21 not found on CentOS 7在 CentOS 7 上找不到 GLIBCXX_3.4.21
【发布时间】:2017-10-27 14:10:12
【问题描述】:

我最近在 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

并为 CentOS 使用了这个 libstdc 软件包。

【问题讨论】:

    标签: gcc centos libstdc++


    【解决方案1】:

    只是你的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 重新创建符号将解决您的问题(也解决了我的问题;))。

    【讨论】:

      【解决方案2】:

      找到你的 gcc 安装位置并更新 LD_LIBRARY_PATH

      例如

      1. /usr/local/gcc/7.2.0/
      2. setenv LD_LIBRARY_PATH /usr/local/gcc/7.2.0/lib64/:$LD_LIBRARY_PATH

      【讨论】:

        【解决方案3】:

        也许对某人会有所帮助: 我安装了devtoolset-7但是没有GLIBCXX_3.4.21,最高版本是GLIBCXX_3.4.19。很长一段时间我都在寻找解决方案。什么对我有用:我克隆了 gcc 7.3 repo,进行了构建和安装。然后将 libstdc++.so.6 和 libstdc++.so.6.0.24 复制到 devtools-7,lib64 文件夹,就可以工作了。

        【讨论】:

          【解决方案4】:

          我没有 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

          希望这会有所帮助。

          【讨论】:

            【解决方案5】:

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

            【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-08-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多