This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: gcc-3.4.3 and libstdc++.so.(5|6)
- From: Andrew Haley <aph at redhat dot com>
- To: Jens MÃller <blog at tessarakt dot de>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Mon, 25 Feb 2008 14:53:02 +0000
- Subject: Re: gcc-3.4.3 and libstdc++.so.(5|6)
- References: <fpss78$2oq$1@ger.gmane.org>
Jens MÃller wrote:
I have to use gcc 3.4.3 because I am developing using the LEDA library,
and we only have the library for that compiler and no subscription
including compiler upgrades :-|
OK.
Well, I am using boost-1.33.1 for libboost_program_options-gcc-mt-d.so.
I got that compiled with gcc34/g++34 (the name of the gcc 3.4 binaries
on the system I am using).
This won't work. You will need to compile it with gcc 3.4.3 if you want
to link your against the LEDA library.
But when linking with my program, I get [ a libstdc++ version conflict ]
When running the binary, I get a SIGSEGV.
So, my first question on this issue is: Shouldn't gcc normally have the
paths to its C++ stdlib hard-coded into the binary?
No. It is possible to do this, but in general it's a really bad idea.
And what is the libstdc++ version used in gcc 3.4.3?
I don't really understand what's happing here ...
I do. You are trying to link against a binary that has been linked
against an incompatible version of libstdc++.
You can't link a single program against two versions of libstdc++. Your
best bet is to have two programs, communicating through shared files or
pipes.
Andrew.