Hello, Earl Purple wrote:
> http://groups.google.co.uk/group/gnu.g++.help/browse_frm/thread/5e5ec81ca37129ce/a4843b1eece84a59?hl=en#a4843b1eece84a59 > > Got it to work back then. Now I have built the libraries in > 3.4.2-32Bit release mode and the error has recurred. There have possibly been changes. Nobody knows what exactly you did to get it to work, and nobody knows what exactly you have done now. So basically this is all guesswork. > > I have no idea what to do because those switches -E etc never worked > for me. I'm not an expert with makefiles. I just don't want > optimisations forced upon me if they cause the code not to work. I think the following page is still giving the best pointers, how this has to be done. We had it in the old thread. http://gcc.gnu.org/faq.html#dso That switch -E is meant for the linker, when linking with the compiler driver you have to prefix it with -Wl,-E as the FAQ says. You may not use -Wl,-Bsymbolic when building the shared library. Read the manpage of ld, there are some short comments on this in the explanations of -B... and -E. From those explanations it is clear that -E is very important, because without it there is no chance that those type_info objects from the executable get used by the shared library. The other way, using the objects from the shared library is not possible, because the objects from the executable could already be in use at the time it is loaded. If dynamic cast works, then the dynamic linker must provide the same resolution to those type_info objects, before and after loading the shared library. g++ -Wl,-E main.o blah.o foo.o -ldso This will generate a call to ld like: ld .... -E .... main.o blah.o foo.o .... -ldso .... > So now what exactly am I supposed to do because I don't want to have > to start putting crazy workarounds into my code simply because I can't > find a decent compiler to build standard C++. You are doing things that are not guaranteed to work everywhere, that are non-standard. And it is more a linker problem. Bernd Strieder _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus