Archived

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

Build Ice resource code error

:confused:
I download the lastest version of STLport and want to use. I have set STLport path in VC directories and appended _STLP_NEW_PLATFORM_SDK macro in all ice reource projects. Then I build the the all.dsw project.
report error as follows:
\src\iceutil\Exception.cpp(52) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'const class stlpd_std::basic_string<char,class stlpd_std::char_traits<char>,class stlpd_std::allocator<cha
r> >' (or there is no acceptable conversion)

Comments

  • matthew
    matthew NL, Canada
    Welcome to the forum! For assistance you need to fill in your signature details as described in the link contained in my signature. We also require more information to help you, such as your operating system and compiler version. Also, why do you want to use a newer version of STLport? Note that we have not tested with any version other than the one in the VC6 requirements.
  • :confused:
    I work on a network grid project and build projects in VC 6.0 enterprise edition on windows XP professional SP2.
    I use the newer version of STLport for that is possible better than old version.
  • matthew
    matthew NL, Canada
    My guess is that the problem has something to do with the builtin iostreams package not being compiled for STLport. Perhaps the _STLP_NO_NEW_IOSTREAMS is defined or something along these lines?

    Unless you really need some feature added in a later release of STLport, or you want to use a later version as an experiment I wouldn't bother trying to modify Ice to support this yourself. The 4.5.2 version that we officially support, and that is bundled with the Ice third party distribution is very stable.
  • Now, have new compile errors

    :confused:
    open src\Ice\ice.dsp and build it.
    For the EventHandlerPtr type was defined as Handle<EventHandler> in INCLUDE\Ice\Handle.h(46).
    It isn't like a pointer type.
    Now, have new compile errors:
    1.
    src\Ice\ThreadPool.cpp(408) error C2451:
    conditional expression of type 'class IceInternal::Handle<class IceInternal::EventHandler>' is illegal
    No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

    2.
    src\Ice\ThreadPool.cpp(553) : error C2676:
    binary '||' : 'class IceInternal::Handle<class IceInternal::EventHandler>' does not define this operator or a conversion to a type acceptable to the predefined operator

    3.
    src\Ice\ThreadPool.cpp(567) : error C2819:
    type 'IceInternal::Handle<class IceInternal::EventHandler>' does not have an overloaded member 'operator ->'
  • matthew
    matthew NL, Canada
    You must fill in your signature details before we can help you. You should also tell us what version of the compiler, and Ice you are attempting to compile.
  • :confused:
    compiler : VC 6.0 Enterprise Edition
    OS : Windows XP Professional SP2
    ICE : 3.0.1
  • matthew
    matthew NL, Canada
    Are you using the correct service patch level? We require service pack 5. Are you also trying to build against a new version of STLport or are you using our third party package?
  • compiler : VC 6.0 Enterprise Edition SP6
    OS : Windows XP Professional SP2
    ICE : 3.0.1
    ThirdParty : 3.0.1 (except STLport)
    STLport : 5.0.2
  • bernard
    bernard Jupiter, FL
    lifesong wrote:
    :confused:
    open src\Ice\ice.dsp and build it.

    That's not the proper way to build Ice: you need to use the all.dsw solution when building.

    Also note that the Berkeley DB/C++ included in ThirdParty 3.0.1 (for VC6) was built using the STLPort 4.6.2 in the same distribution. If you want to use your own STLPort version, you should rebuild Berkeley DB/C++ as well using that version.

    Cheers,
    Bernard