MandrivaThis Forum is for the discussion of Mandriva (Mandrake) Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Hi, I downloaded and am attempting to run Firefox 1.5, (currently running v. 1.02), but I get the following error:
[tim@localhost firefox]$ ./firefox
./firefox-bin: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
I figured that meant I was missing the lib file, so I downloaded and attempted to install it, but it said it was already installed.
I've been googling for hours with no solutions yet. Any help would be greatly appreciated.
This is just a broken link... it may happen when you update or install a new library.
First locate the libstdc librairy : locate libstdc (or find or whatever you like more than locate)
Once you found this, you have to recreate the broken link. On my system, locate find me some directory, and especially this one (should be almost the same for you : /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.la
/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so
/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.a
/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.6
/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++_pic.a
/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.6.0.3
As you can see, I am missing libstdc++.so.5. No problem, I will recreate it. The "libstdc++.so" file is the "main" and other are just link to that one (on my system at least). So just creating a link named "libstdc++.so.5" that point to "libstdc++.so" should be fine as long as you believe in the backward compatibility god. Try :
ln -s /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.5 (of course change the path for your if it's not the same!!).
Now, your firefox should be able to find what it misses
[root@localhost firefox]# ./firefox
./firefox-bin: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
Okay, the link exist but it is possible that it points on nothing. To check, try ls -l /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/libstdc++.so.5
or ls -l /usr/lib/libstdc++.so.5
This should tell you where /usr/lib/libstdc++.so.5 points to. Then, verify the "destination" on the link with the same "ls -l" command. (I'm not on a Linux computer so I can't give you examples sorry).
If you find out that the link is wrong and point on nothing, adding the "-f" flag to the command I gave you last time will overwrite the old link and recreate one. But make sure the link is really wrong before doing so. If you do think so, the command is : ln -sf /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/libstdc++.so /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/libstdc++.so.5
Here's the results:
-------------------
[root@localhost tim]# ls -l /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/libstdc++.so.5
lrwxrwxrwx 1 root root 55 Feb 5 21:37 /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/libstdc++.so.5 -> /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/libstdc++.so*
This looked ok, then I tried the alternate command and got a different output that I haven't seen yet through this process::
----------------
[[root@localhost tim]# ls -l /usr/lib/libstdc++.so.5
lrwxrwxrwx 1 root root 29 Feb 5 01:07 /usr/lib/libstdc++.so.5 -> /usr/local/lib/libstdc++.so.5
My /usr/local/lib/ directory is empty. Also, the paths I italicized in the above output were flashing red.
I ran ls -l and got this:
-------------------------
lrwxrwxrwx 1 root root 55 Feb 5 21:15 libstdc++.so -> /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/libstdc++.so*
lrwxrwxrwx 1 root root 57 Feb 5 21:16 libstdc++.so.5 -> /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.3/libstdc++.so.5*
Then I ran the next command just to confirm that there was nothing there:
--------------------------------------------------------------------------
[root@localhost ~]# ls -l /usr/local/lib/libstdc++.so.5
ls: /usr/local/lib/libstdc++.so.5: No such file or directory
I went back to the man pages and help sites thinking I might try to create a link in that folder, but I'm not certain if that's the right move and experimenting usually gets me in trouble. Didn't want to screw things up worse than they already are.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.