【问题标题】:uwsgi: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/libicuuc.so.55uwsgi:/usr/lib/libstdc++.so.6:找不到版本“CXXABI_1.3.8”(/usr/lib/x86_64-linux-gnu/libicuuc.so.55 需要
【发布时间】:2017-12-27 09:16:48
【问题描述】:

我在运行 sentry run web 时遇到此错误。

我对此感到困惑并尝试了很多东西,例如:

https://stackoverflow.com/questions/20357033/how-to-fix-program-name-usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxx,

https://stackoverflow.com/questions/35392310/error-building-gcc-4-8-3-from-source-libstdc-so-6-version-cxxabi-1-3-8-not.

但这对我不起作用。问题依然存在:

uwsgi:/usr/lib/libstdc++.so.6:找不到版本“CXXABI_1.3.8”(/usr/lib/x86_64-linux-gnu/libicuuc.so.55 需要)

我的系统运行 Ubuntu 16.04

如何解决这个问题?请帮帮我。

【问题讨论】:

  • 对象CXXABI_1.3.8默认存在:$ objdump -x /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI_1.3.8:32 0x00 0x0bafd178 CXXABI_1.3.8

标签: linux ubuntu-16.04 sentry


【解决方案1】:

发件人:https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_install

如果您已经安装了旧版本的 libstdc++,则错误可能类似于以下错误之一:

./a.out: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found
./a.out: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found

这意味着链接器找到了 /usr/lib/libstdc++.so.6,但该库属于旧版本的 GCC,而不是用于编译和链接程序 a.out(或其中的某些部分)。

gcc 动态链接器需要新库的新路径:

export LD_LIBRARY_PATH=${prefix}/lib:$LD_LIBRARY_PATH

即:

export LD_LIBRARY_PATH=/usr/lib64/:$LD_LIBRARY_PATH

(取决于您的系统,您可能需要 /usr/lib/)

寻找路径:

locate libstdc++.so.6

总结:gcc 动态链接器搜索预配置目录列表,如下所述:https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_install 共享库 libstdc++.so.6 已经存在,我们只需将链接器指向正确的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    相关资源
    最近更新 更多