Re: C++/STL linking trouble
On Wed, 2008-01-09 at 15:37 +0100, Thomas Girard wrote:
> On Wed, Jan 09, 2008 at 07:07:30AM -0500, Adam C Powell IV wrote:
> > Greetings,
> Hello Adam,
> > I'm having trouble with a new C++ package called Salomé which I can't
> > get to link to a C++ library in a new package OpenCASCADE.
> > Here's the error:
> > Using nm -C I found that the library libTKernel has:
> > 0000000000004c74 T operator<<(_STL::basic_ostream<char, _STL::char_traits<char> >&, TCollection_AsciiString const&)
> > and the other missing symbols are in that and other OpenCASCADE libs
> > with s/std/_STL/ .
> > >From Googling around, I've learned that this seems to be a confusion
> > between the stlport namespace and standard C++ library namespace for the
> > argument symbols. So how do I either get Salomé to build in the stlport
> > namespace, or get OpenCASCADE to not build there?
> It seems the libTKernel has changed how STLport std:: namespace (through
> _STDP_STD_NAME macro) gets expanded. If you have a look at libstlport5.1
> symbols you should see there are defined in the stlp_std:: namespace.
> Removing this #define _STDP_STD_NAME _STL from headers used by libTKernel
> should fix the link failure.
Thank you for pointing this out. OpenCASCADE doesn't work with stlport
5.1, just 4.6.
I don't see _STDP_STD_NAME in any of the OpenCASCADE headers... Should
I perhaps #define _STDP_STD_NAME std, or #undef it?
> I'll answer the omniORB change on the pkg-corba mailing list.
Alexandre Fayolle pointed out that Salomé only supports omniORB 4.0.x,
not 4.1.1. So to get this to build in unstable, I'll need to port it to
I'll stick to building in testing for now, and port when I get time.
GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6
Engineering consulting with open source tools