Subj : Linker problems in Builder C++ 6 To : borland.public.cpp.borlandcpp From : mauro russo Date : Thu Sep 15 2005 11:29 am I'm using Borland C++ 6 and i already downloaded and installed the update 4. I have a code that produces linker warnings like: [Linker Warning] Public symbol 'bool _STL::operator <(const _STL::basic_string, _STL::allocator >&, const _STL::basic_string, _STL::allocator >&)' defined in both module C:\MODULI_SW\SB_9A\UNIPROG 1.1 BUILDER 6\BASE_UNIPROG.OBJ and C:\MODULI_SW\SB_9A\UNIPROG 1.1 BUILDER 6\CORE.OBJ I could see, by debugging, as soon as the program starts [by pressing, only one time, F7 ('TraceInto')] that some of implementations of that operator< is wrong. I mean i saw the CPU window and i saw this situation (by [manual]copy and paste from CPU window): _STL::less<_STL::basic_string, _STL::allocator > >::operator ()(const _STL::basic_string, _STL::allocator >&, const _STL::basic_string, _STL::allocator<_STL::pair > >::list<_STL::pair, _STL::allocato<_STL::pair > >() 00443446 83C408 add esp,0x08 stl/_function_base.h.73: 00443449 5D pop ebp 0044344A C3 ret 0044344B 90 nop ...... and [adress where it jumps with the call of 00443441] _STL::list<_STL::pair, _STL::allocator<_STL::pair > >::list<_STL::pair, _STL::allocator<_STL::pair > >() 00405C50 55 push ebp 00405C51 8BEC mov ebp,esp ....other instructions whitout jumps.... 00405C6C E863EEFFFF call _STL::_String_base >::_String_base >(const _STL::allocator &) ...... For others implementations [different CPU addresses], i could see it's all right, whitout list >::allocator call. But it's weard that in the wrong implementation it looks that the implementation in 00405C50 address is correct because it calls methods of _STL::_String_base class! So, is it an IDE error in the show or a link error? I think the second, because the wrong implementation generates updating of const objects and that get's an exception later in the running. Some advice or quesiont ot better understand the condition? Very thanks for help. .