I'm trying to execute a binary and it says ./xtensoftphone: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory. This library is indeed installed under /usr/lib. Is there something I need to do to get the binary to see the library? I thought all /usr/lib libraries were visible.


blaine :: ~/Downloads/xten-xlite » ldd xtensoftphone                                                                                                                    
linux-gate.so.1 =>  (0xf7783000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7749000)
libgthread-2.0.so.0 => /usr/lib32/libgthread-2.0.so.0 (0xf7743000)
libglade-2.0.so.0 => /usr/lib32/libglade-2.0.so.0 (0xf772a000)
libgtk-x11-2.0.so.0 => /usr/lib32/libgtk-x11-2.0.so.0 (0xf7355000)
libxml2.so.2 => /usr/lib32/libxml2.so.2 (0xf722b000)
libz.so.1 => /usr/lib32/libz.so.1 (0xf7216000)
libgdk-x11-2.0.so.0 => /usr/lib32/libgdk-x11-2.0.so.0 (0xf7180000)
libatk-1.0.so.0 => /usr/lib32/libatk-1.0.so.0 (0xf7163000)
libgdk_pixbuf-2.0.so.0 => /usr/lib32/libgdk_pixbuf-2.0.so.0 (0xf7149000)
libpangoxft-1.0.so.0 => /usr/lib32/libpangoxft-1.0.so.0 (0xf7141000)
libpangox-1.0.so.0 => /usr/lib32/libpangox-1.0.so.0 (0xf7134000)
libpango-1.0.so.0 => /usr/lib32/libpango-1.0.so.0 (0xf70f1000)
libgobject-2.0.so.0 => /usr/lib32/libgobject-2.0.so.0 (0xf70b1000)
libgmodule-2.0.so.0 => /usr/lib32/libgmodule-2.0.so.0 (0xf70ac000)
libdl.so.2 => /lib32/libdl.so.2 (0xf70a8000)
libglib-2.0.so.0 => /lib32/libglib-2.0.so.0 (0xf6fde000)
libm.so.6 => /lib32/libm.so.6 (0xf6fb8000)
libstdc++.so.5 => not found
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf6f98000)
libc.so.6 => /lib32/libc.so.6 (0xf6e3e000)
libX11.so.6 => /usr/lib32/libX11.so.6 (0xf6d21000)
/lib/ld-linux.so.2 (0xf7784000)
librt.so.1 => /lib32/librt.so.1 (0xf6d18000)
libpcre.so.3 => /lib32/libpcre.so.3 (0xf6ce7000)
libpangoft2-1.0.so.0 => /usr/lib32/libpangoft2-1.0.so.0 (0xf6cbf000)
libpangocairo-1.0.so.0 => /usr/lib32/libpangocairo-1.0.so.0 (0xf6cb3000)
libgio-2.0.so.0 => /usr/lib32/libgio-2.0.so.0 (0xf6c15000)
libcairo.so.2 => /usr/lib32/libcairo.so.2 (0xf6b9b000)
libfreetype.so.6 => /usr/lib32/libfreetype.so.6 (0xf6b25000)
libfontconfig.so.1 => /usr/lib32/libfontconfig.so.1 (0xf6af4000)
libXext.so.6 => /usr/lib32/libXext.so.6 (0xf6ae4000)
libXrender.so.1 => /usr/lib32/libXrender.so.1 (0xf6ada000)
libXinerama.so.1 => /usr/lib32/libXinerama.so.1 (0xf6ad6000)
libXi.so.6 => /usr/lib32/libXi.so.6 (0xf6ac8000)
libXrandr.so.2 => /usr/lib32/libXrandr.so.2 (0xf6abf000)
libXcursor.so.1 => /usr/lib32/libXcursor.so.1 (0xf6ab5000)
libXcomposite.so.1 => /usr/lib32/libXcomposite.so.1 (0xf6ab1000)
libXdamage.so.1 => /usr/lib32/libXdamage.so.1 (0xf6aad000)
libXfixes.so.3 => /usr/lib32/libXfixes.so.3 (0xf6aa7000)
libXft.so.2 => /usr/lib32/libXft.so.2 (0xf6a92000)
libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf6a78000)
libresolv.so.2 => /lib32/libresolv.so.2 (0xf6a64000)
libselinux.so.1 => /lib32/libselinux.so.1 (0xf6a49000)
libpixman-1.so.0 => /usr/lib32/libpixman-1.so.0 (0xf69ee000)
libdirectfb-1.2.so.0 => /usr/lib32/libdirectfb-1.2.so.0 (0xf6977000)
libfusion-1.2.so.0 => /usr/lib32/libfusion-1.2.so.0 (0xf696d000)
libdirect-1.2.so.0 => /usr/lib32/libdirect-1.2.so.0 (0xf6957000)
libpng12.so.0 => /lib32/libpng12.so.0 (0xf6932000)
libxcb-render-util.so.0 => /usr/lib32/libxcb-render-util.so.0 (0xf692c000)
libxcb-render.so.0 => /usr/lib32/libxcb-render.so.0 (0xf6924000)
libexpat.so.1 => /lib32/libexpat.so.1 (0xf68fd000)
libXau.so.6 => /usr/lib32/libXau.so.6 (0xf68f9000)
libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf68f3000)

blaine :: ~/Downloads/xten-xlite » cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
link|improve this question

25% accept rate
apparently xtensoftphone is a 32-bit executable; do you have a 32-bit libstdc++.so.5, or only a 64-bit one? What does file -L /usr/lib*/libstdc++.so.5 show? – Gilles Aug 5 '10 at 20:42
feedback

3 Answers

Do you really have /usr/lib/libstdc++.so.5, in addition to /usr/lib/libstdc++.so.6? The two are not compatible (in the sense that a program that requires one won't work with the other, of course you can install both).

Ubuntu 10.04 no longer has libstdc++5, but if you need it, you can grab the package from an older release and install it manually with dpkg.

link|improve this answer
I do have 5 and 6 installed. The program is not requiring both, only 5, as shown by the ldd output above. – Blaine LaFreniere Aug 5 '10 at 19:12
I installed 5 from a .deb – Blaine LaFreniere Aug 6 '10 at 2:26
@Blaine: do you have a 32-bit or 64-bit system? If you installed a 64-bit library from a .deb, it won't work with your 32-bit executable. – Gilles Aug 6 '10 at 6:53
feedback

You need to run ldconfig after each change to the libraries. If in doubt, just run it, it won't hurt if run too often.

If that does not fix it, please post the output of ldd xtensoftphone , and the contents of /etc/ld.so.conf (plus any files under /etc/ld.so.conf.d), then we'll see.

link|improve this answer
See details added above – Blaine LaFreniere Aug 5 '10 at 20:24
For a library in /usr/lib, the package manager should have run ldconfig. For anyone with a similar problem: if you install a library manually, put it in /usr/local/lib, and run ldconfig afterwards. – Gilles Aug 5 '10 at 20:43
feedback

Try adding the location of the library to the LD_LIBRARY_PATH

link|improve this answer
-1 This is more likely to further complicate matters. Libraries under /usr/lib should be picked up without LD_LIBRARY_PATH. – sleske Aug 4 '10 at 17:32
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.