Solving the GLIBCXX_3.4.4, GLIBCXX_3.4.5, GLIBCXX_3.4.6 error

Let’s review the problem. I’ve got this on a number of occasions and different libraries. Here are some typical error conditions.

./mysql-workbench-bin: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.5' not found (required by ./mysql-workbench-bin)
Error: Missing Dependency: libstdc++.so.6(GLIBCXX_3.4.6) is needed by package glibmm24

Special thanks to my new Guru friend Alfredo who put me on the path.

$ su -
$ cd /src/rpm
$ wget ftp://rpmfind.net/linux/fedora/extras/4/SRPMS/libsigc++20-2.0.11-1.src.rpm
$ rpmbuild --rebuild libsigc++20-2.0.11-1.src.rpm
$ cd /usr/src/redhat/RPMS/i386/
$ rpm -Uvh libsigc++20*.rpm
Preparing...                ########################################### [100%]
   1:libsigc++20            ########################################### [ 50%]
   2:libsigc++20-devel      ########################################### [100%]

Woot! It was that simple, download the rpm source, compile and install.

What does this ultimately mean? Well, something in your OS configuration isn’t the same as the platform used to build the rpm’s. In my case, I’m running CentOS 4.2, which was been upgraded from CentOS 4.0 via the Network Notification Tool. I’m also trying to install a Fedora FC4 rpm, on a RHEL platform. Anyway, it’s a simple solution and it works and that’s all we need for those that get stuck with this problem.

A detailed History of the problem

$ su -
$ yum install libsigc++20
Setting up Install Process
Setting up repositories
addons                    100% |=========================|  951 B    00:00
update                    100% |=========================|  951 B    00:00
nr-production             100% |=========================| 1.0 kB    00:00
base                      100% |=========================| 1.1 kB    00:00
nr-testing                100% |=========================| 1.0 kB    00:00
nr-mono                   100% |=========================| 1.0 kB    00:00
freshrpms                 100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
primary.xml.gz            100% |=========================|  35 kB    00:01
nr-mono   : ################################################## 143/143
Added 131 new packages, deleted 87 old in 1.31 seconds
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package libsigc++20.i386 0:2.0.17-1.1.fc4.nr set to be updated
--> Running transaction check
--> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.4) for package: libsigc++20
--> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.6) for package: libsigc++20
--> Finished Dependency Resolution
Error: Missing Dependency: libstdc++.so.6(GLIBCXX_3.4.4) is needed by package libsigc++20
Error: Missing Dependency: libstdc++.so.6(GLIBCXX_3.4.6) is needed by package libsigc++20

So doing some investigation.

$ yum info libstdc++
Setting up repositories
addons                    100% |=========================|  951 B    00:00
update                    100% |=========================|  951 B    00:00
nr-production             100% |=========================| 1.0 kB    00:00
base                      100% |=========================| 1.1 kB    00:00
nr-testing                100% |=========================| 1.0 kB    00:00
nr-mono                   100% |=========================| 1.0 kB    00:00
freshrpms                 100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Installed Packages
Name   : libstdc++
Arch   : i386
Version: 3.4.4
Release: 2
Size   : 774 k
Repo   : installed
Summary: GNU Standard C++ Library

Description:
 The libstdc++ package contains a rewritten standard compliant GCC Standard
C++ Library.

$ rpm -ql libstdc++
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.3

$ rpm -qaR libstdc++
/sbin/ldconfig
/sbin/ldconfig
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libgcc_s.so.1
libgcc_s.so.1(GCC_3.0)
libgcc_s.so.1(GCC_3.3)
libgcc_s.so.1(GLIBC_2.0)
libm.so.6
rpmlib(CompressedFileNames) < = 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1

One Response to “Solving the GLIBCXX_3.4.4, GLIBCXX_3.4.5, GLIBCXX_3.4.6 error”

  1. dyon says:

    Hi,

    I’m glad that you’ve posted this.
    I tried to do the same but it didn’t work for me.

    I had the following error first :

    [dyon@adriaan ~]$ kwrite
    kwrite: /usr/local/lib/libstdc++.so.6: version `GLIBCXX_3.4.4' not found (required by /usr/lib/libkabc.so.1)
    kwrite: /usr/local/lib/libstdc++.so.6: version `GLIBCXX_3.4.6' not found (required by /usr/lib/libkabc.so.1)
    
    The fix for my problem was this :
    
    #find these libs
    [dyon@adriaan ~]$ locate libstdc | grep usr | grep -v doc
    /usr/lib/libstdc++.so.5.0.7
    /usr/lib/libstdc++.so.5
    /usr/lib/libstdc++.so.6.0.7
    /usr/lib/gcc/i386-redhat-linux/4.0.2/libstdc++.a
    /usr/lib/gcc/i386-redhat-linux/4.0.2/libstdc++.so
    /usr/lib/libstdc++.so.6
    /usr/lib/gcc-lib/i386-redhat-linux/3.3.4/libstdc++.a
    /usr/lib/gcc-lib/i386-redhat-linux/3.3.4/libstdc++.so
    /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/libstdc++.a
    /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/libstdc++.so
    /usr/include/boost/config/stdlib/libstdcpp3.hpp
    /usr/local/lib/libstdc++.la
    /usr/local/lib/libstdc++.a
    /usr/local/lib/libstdc++.so
    /usr/local/lib/libstdc++.so.6.0.3
    /usr/local/lib/libstdc++.so.6
    /usr/local/share/locale/de/LC_MESSAGES/libstdc++.mo
    /usr/local/share/locale/fr/LC_MESSAGES/libstdc++.mo
    
    # change the  softlink from /usr/local/lib/libstdc++.so.6 (which was linked to /usr/local/lib/libstdc++.so.6.0.3 )
    # to /usr/lib/libstdc++.so.6
    
    [dyon@adriaan ~]$ sudo mv /usr/local/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6~ # backup in case of...
    [dyon@adriaan ~]$ sudo ln -s /usr/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6 #link to new location
    

    This fixed my problem. I hope someone can use this info…

    I’m not sure what caused this problem, but the reason you’ve mentioned could very well be it : i’ve installed probably some rpm’s which were not build on a system like mine (tried to install some decent direct connect prog)