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.