[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: C++/STL linking trouble



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.

I'll answer the omniORB change on the pkg-corba mailing list.

Thomas


Reply to: