uwsgi: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/libicuuc.so.55

此生再无相见时 提交于 2020-07-22 21:34:54

问题


I got this error when I ran sentry run web.

I am confused about it and tried a lot of things, such as:

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

and

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

But it didn't work for me. The problem is still there:

uwsgi: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/libicuuc.so.55)

My system runs Ubuntu 16.04.

How to solve this problem? Please help me.


回答1:


From: https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_install

If you already have an older version of libstdc++ installed then the error might look like one of the following instead:

./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

This means the linker found /usr/lib/libstdc++.so.6 but that library belongs to an older version of GCC than was used to compile and link the program a.out (or some part of it).

The gcc dynamic linker needs the new path to the newer library:

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

i.e.:

export LD_LIBRARY_PATH=/usr/lib64/:$LD_LIBRARY_PATH

(depending on your system you may need /usr/lib/)

Find the path:

locate libstdc++.so.6

in summary: the gcc dynamic linker searches a list of preconfigured directories as described: https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_install The shared library libstdc++.so.6 is already there we just have to point the linker to the correct location.



来源:https://stackoverflow.com/questions/45235647/uwsgi-usr-lib-libstdc-so-6-version-cxxabi-1-3-8-not-found-required-by-u

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!