【问题标题】:/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found/usr/lib64/libstdc++.so.6:未找到版本“GLIBCXX_3.4.15”
【发布时间】:2015-10-10 02:14:50
【问题描述】:

我正在尝试运行 appium 测试。但是我得到错误说什么:

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found

我正在使用 RedHat6.6。当我跑步时:

strings /usr/lib/libstdc++.so.6 | grep GLIBC

我明白了:

GLIBC
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
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

是否可以为 RedHat6.6 获得 GLIBCXX_3.4.15?

【问题讨论】:

    标签: c++ linux gcc appium libstdc++


    【解决方案1】:

    您的libstdc++.so.6 似乎对您的程序来说太旧了,您可以尝试更新您libstdc++.so。在我的centos7 中,我的libstdc++.so.6 链接到libstdc++.so.6.0.19

    libstdc++.so.6 -> libstdc++.so.6.0.19
    

    里面有字符串

    [root]#strings libstdc++.so.6|grep GLIBC
    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
    GLIBC_2.3
    GLIBC_2.2.5
    GLIBC_2.14
    GLIBC_2.4
    GLIBC_2.3.2
    GLIBCXX_DEBUG_MESSAGE_LENGTH
    

    也许你可以下载一个更新的版本并重新链接libstdc++.so.6,但你应该关心你系统中的其他程序是否仍然可以正常工作。

    更新这个库你要小心,它可能会带来新的问题,我已经更换了libc.so.6,然后所有命令都不能工作,我用/sbin/sln修复它。见glibc: elf file OS ABI invalid


    pkgs.org下载libstdc++,然后解压。

    rpm2cpio libstdc++-4.9.2-1.fc21.x86_64.rpm |cpio -idmv
    cp ./usr/lib64/libstdc++.so.6.0.20 /usr/lib64
    

    也许您可以在执行程序之前使用LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.20。像这样

    LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.20 ls -hl
    

    或者export LD_LIBRARY_PATH=/usr/lib64/libstdc++.so.6.0.20,但我不确定它会起作用。

    如果您重新链接libstdc++.so.6,请小心。

    【讨论】:

    • 我很惭愧,我当时是从较新版本的系统中复制的。你可以从那里下载pkgs.org/fedora-21/fedora-x86_64/…。我更新我的答案/
    • 这些链接已失效。 :( ...但这是一个非常有用的答案。我喜欢 rpm2cpio 技巧。还有 LD_PRELOAD 技巧。
    【解决方案2】:

    将您的 libstdc++.so.6 文件替换为新文件,其中包括 GLIBCXX_3.4.15

    【讨论】:

      【解决方案3】:

      导航到\node_modules\electron\dist 并将所有必需的库粘贴到那里,以防止系统变砖

      如果你得到 undefined g_bytes ref 错误

      然后下载https://jlison.github.io/bin/centos6/soichih/mirror/gcc-4.7.2.tar.gz并将其解压到某个文件夹并更新LD_LIBRARY_PATH glibpath=/opt/glib/ (您提取 glib 的路径)

      导出 LD_LIBRARY_PATH=$glibpath/glib-2.49.4-kgesagxmtbemim2denf65on4iixy3miy/lib:$LD_LIBRARY_PATH

      导出 LD_LIBRARY_PATH=$glibpath/libffi-3.2.1-wk2luzhfdpbievnqqtu24pi774esyqye/lib64:$LD_LIBRARY_PATH

      导出 LD_LIBRARY_PATH=$glibpath/pcre-8.39-itdbuzevbtzqeqrvna47wstwczud67wx/lib:$LD_LIBRARY_PATH

      导出 LD_LIBRARY_PATH=$glibpath/gettext-0.19.8.1-aoweyaoufujdlobl7dphb2gdrhuhikil/lib:$LD_LIBRARY_PATH

      【讨论】:

        猜你喜欢
        • 2011-07-10
        • 1970-01-01
        • 2020-02-13
        • 1970-01-01
        • 2015-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-07
        相关资源
        最近更新 更多