Archived

This forum has been archived. Please start a new discussion on GitHub.

Linker errors building with Borland C++ Builder

Hi everyone,

I'm trying to build the sample application on BCB and am getting the linker errors below. It seems to be that this has got something to do with STLPort redefining 'std'; I've tried defining _STLP_DONT_REDEFINE_STD but then I got a host of errors saying 'ostream is not a member of std' and the like.

Any clues?
tks - Adrian.


Error Linking IceTest.exe: 0 Lines , 3 Warning(s) , 13 Error(s) , 30/12/1899 00:00:00 [0.341s]
[Linker Error] Unresolved external 'IceUtil::Exception::ice_print(_STL::basic_ostream<char, _STL::char_traits<char> >&) const' referenced from ...\DEVWORK\ICE\ICETEST.OBJ
[Linker Error] Unresolved external 'Ice::Object::ice_isA(const _STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> >&, const Ice::Current&) const' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::Printer::ice_clone() const' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::Printer::ice_isA(const _STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> >&, const Ice::Current&) const' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::Printer::ice_ids(const Ice::Current&) const' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::Printer::ice_id(const Ice::Current&) const' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::Printer::__dispatch(IceInternal::Incoming&, const Ice::Current&)' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::Printer::__write(IceInternal::BasicStream *) const' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::Printer::__read(IceInternal::BasicStream *, bool)' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::Printer::__write(const IceInternal::Handle<Ice::OutputStream>&) const' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::Printer::__read(const IceInternal::Handle<Ice::InputStream>&, bool)' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'Demo::PrinterI::printString(const _STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> >&, const Ice::Current&)' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Error] Unresolved external 'IceUtil::operator <<(_STL::basic_ostream<char, _STL::char_traits<char> >&, const IceUtil::Exception&)' referenced from ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Warning] Public symbol 'IceInternal::ProxyHandle<IceProxy::Ice::Object> IceInternal::checkedCastImpl<IceInternal::ProxyHandle<IceProxy::Ice::Object> >(const IceInternal::ProxyHandle<IceProxy::Ice::Object>&)' defined in both module ...\DEVWORK\ICE\ICETEST.OBJ and ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Warning] Public symbol 'IceInternal::checkedCastImpl<IceInternal::ProxyHandle<IceProxy::Ice::Object> >(const IceInternal::ProxyHandle<IceProxy::Ice::Object>&, ...' defined in both module ...\DEVWORK\ICE\ICETEST.OBJ and ...\DEVWORK\ICE\MAINFRM.OBJ
[Linker Warning] Public symbol 'IceInternal::ProxyHandle<IceProxy::Ice::Object> IceInternal::uncheckedCastImpl<IceInternal::ProxyHandle<IceProxy::Ice::Object> >(const IceInternal::ProxyHandle<IceProxy::Ice::Object>&)' defined in both module ...\DEVWORK\ICE\ICETEST.OBJ and ...\DEVWORK\ICE\MAINFRM.OBJ

Comments

  • dwayne
    dwayne St. John's, Newfoundland
    Please read our support policy and edit your signature as indicated.
  • ok - did that.
    dwayne wrote:
    Please read our support policy and edit your signature as indicated.

    Hi,

    Ok - I did that; I've now updated my signature.
    Will my query be considered now?
  • dwayne
    dwayne St. John's, Newfoundland
    We have never tried to build Ice using C++Builder using STLPort. Is there a reason why you are not using the STL that comes packaged with C++Builder?
  • amercieca wrote:
    Hi,

    Ok - I did that; I've now updated my signature.
    Will my query be considered now?

    If you have any further questions, please add the name of your organization and your Ice project to your signature. Please see this post for details.
  • Hi,
    dwayne wrote:
    We have never tried to build Ice using C++Builder using STLPort. Is there a reason why you are not using the STL that comes packaged with C++Builder?

    The STL that comes packaged with C++ Builder 6 *is* STLPort. It is the default STL used unless otherwise specified. You can use the old Rogue Wave library by defining 'USE_OLD_RW_STL'. When I did that, the project built fine, but I kept getting an access violation in the 'Ice::initialize(argc, argv)' function call.

    I then thought I'd try using the STLPort stl instead; but I ran into the build problems I mentioned earlier.

    Tks - Adrian.
  • dwayne
    dwayne St. John's, Newfoundland
    You still have not updated your signature as request by Marc.
    marc wrote:
    If you have any further questions, please add the name of your organization and your Ice project to your signature. Please see this post for details.
  • dwayne wrote:
    You still have not updated your signature as request by Marc.

    Hi Marc,

    I'm only evaluating ICE at the moment in my own free time and not as part of any initiative by my current company. There is no specific, ongoing ICE project at the moment - I'm currrently just evaluating it on a personal level because I like to keep abreast of new technologies, particularly middle-ware; if I'm sufficiently impressed, I will influence decisions on the choice of middle-ware for future projects.

    I'm very familiar with CORBA (through ACE+TAO) - been using it for 8+ years now - and I've now come across ICE (which I'm very impressed with so far) which seems to me to be what CORBA should have been from the start.

    Anyway, since I cannot update my signature to your requirements, I guess I should refrain from posting any issues/queries to this forum.

    Thanks for your help anyway.
  • dwayne wrote:
    You still have not updated your signature as request by Marc.

    Hi,

    I've actually updated my signature now.
    Tks - Adrian.
  • dwayne
    dwayne St. John's, Newfoundland
    The supported compiler for Ice is C++Builder 2006, not C++Builder 6, which it appears that you are using. The STL package supplied with C++Builder 2006 is not STLPort but is from dinkumware. Besides C++Builder 2006, you should also be able to use the Borland Developer Studio 2006/Turbo C++ which you can download here for free. However we have not extensively tested this compiler internally yet.
  • Hi Dwayne,

    Yes - you're right. All works fine under Turbo C++.
    Thanks for you help.