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

3

9

I am trying to run appium tests. However I get error saying what:

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

I am using RedHat6.6. When I run:

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

I get this:

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

Is it possible to get GLIBCXX_3.4.15 for RedHat6.6?

Czar answered 20/7, 2015 at 19:58 Comment(0)
R
9

It seems that your libstdc++.so.6 is too old for your program, You can try to update you libstdc++.so. In my centos7, my libstdc++.so.6 is linked to libstdc++.so.6.0.19

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

There are the strings in it

[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

Maybe you could download a newer version and relink the libstdc++.so.6, but you should care about are other programs in you system still work well.

Update this lib you should vary careful, It may take new problems, I had replaced the libc.so.6, then all commands can't work, I used /sbin/sln fix it. See glibc: elf file OS ABI invalid


Download libstdc++ from pkgs.org, then unpack it.

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

Maybe you can use LD_PRELOAD=/usr/lib64/libstdc++.so.6.0.20 before you execute your program. Like this

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

Or export LD_LIBRARY_PATH=/usr/lib64/libstdc++.so.6.0.20, but I'm not certain it will work.

If you relink the libstdc++.so.6, be careful.

Recommit answered 21/7, 2015 at 3:36 Comment(1)
These links are dead. :( ... but it's a very useful answer. I like the rpm2cpio trick. And the LD_PRELOAD trick.Hassler
D
1

Navigate to \node_modules\electron\dist and Paste all the required Libraries there that will keep you safe from bricking your system

if you get undefined g_bytes ref error

Then Download https://jlison.github.io/bin/centos6/soichih/mirror/gcc-4.7.2.tar.gz and extarct it to some folder and update LD_LIBRARY_PATH glibpath=/opt/glib/ (path where you have extracted glib )

export LD_LIBRARY_PATH=$glibpath/glib-2.49.4-kgesagxmtbemim2denf65on4iixy3miy/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$glibpath/libffi-3.2.1-wk2luzhfdpbievnqqtu24pi774esyqye/lib64:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$glibpath/pcre-8.39-itdbuzevbtzqeqrvna47wstwczud67wx/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$glibpath/gettext-0.19.8.1-aoweyaoufujdlobl7dphb2gdrhuhikil/lib:$LD_LIBRARY_PATH

Dewaynedewberry answered 14/10, 2016 at 11:37 Comment(0)
E
-1

Replace your libstdc++.so.6 file with a new one, which includes GLIBCXX_3.4.15

Epiphora answered 1/8, 2015 at 14:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.