This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: I have no ideas about an error involving CXXABI
- From: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- To: Alec Teal <a dot teal at warwick dot ac dot uk>
- Cc: gcc-help <gcc-help at gcc dot gnu dot org>
- Date: Sun, 1 Dec 2013 16:24:46 +0000
- Subject: Re: I have no ideas about an error involving CXXABI
- Authentication-results: sourceware.org; auth=none
- References: <52993F21 dot 2060700 at warwick dot ac dot uk> <CAH6eHdR=dyv7kM_4XoFZWhMGjuRsp1q8E3qBQY_Otg=5ge2XXg at mail dot gmail dot com> <52994B57 dot 4030003 at warwick dot ac dot uk> <CAH6eHdSweJibm6rgcxHZDVcHmgOTuy45th1Mm1Gdi42ab0vmfw at mail dot gmail dot com> <529A8B18 dot 1070008 at warwick dot ac dot uk>
[Please don't top-post on this list]
On 1 December 2013 01:04, Alec Teal <a.teal@warwick.ac.uk> wrote:
> You're right Jonathan (I didn't doubt you really)
>
> ls /usr/lib/x86_64-linux-gnu/ -l | grep libstdc
> lrwxrwxrwx 1 root root 19 May 10 2013 libstdc++.so.6 ->
> libstdc++.so.6.0.16
> -rw-r--r-- 1 root root 962656 Apr 16 2012 libstdc++.so.6.0.16
>
>
> I've looked at that page and I didn't think that this could happen.
What "this" are you talking about?
Your problem is failure to find the right libstdc++.so at run-time.
That's exactly what that page (and the one it links to in the manual)
explain how to solve. Why would we write that documentation if the
problem couldn't happen?
> This
> means I know less than the installation process than I thought I did. Rather
> than blindly following that link can you please explain what actually
> happens? (Though I am not a child if you want to withhold the answer but
> give me the explanation I'd still appreciate that)
I don't know what exactly you're asking, particularly if it isn't
already covered by the link I gave.
When you installed GCC 4.9.0 it put the new libstdc++.so somewhere. I
don't know where, because you didn't confirm where you'd installed it
(but I'm still betting it's not in /usr)
When you use GCC 4.9.0 to link your program you create a dependency on
symbols in the new libstdc++.
When you try to run your program the dynamic linker doesn't know how
to find the newer libstdc++.
This is all explained in the link I gave you:
"This doesn't mean that the shared library isn't installed, only that
the dynamic linker can't find it. When a dynamically-linked executable
is run the linker finds and loads the required shared libraries by
searching a pre-configured list of directories. If the directory where
you've installed libstdc++ is not in this list then the libraries
won't be found."
It also explains how to solve the problem. I'm not going to type out
another explanation or paste in more information that is already in
the docs. What isn't clear?