Archived

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

Link problem using a string to class map

Hello,
using the interface given below, i'm getting 2 link errors indicating unresolved external symbols.
I'm using C++ in VS2003. What is the problem with the missing externals?

Slice definition:
module WGICE
{
class PersistentUserAccount
{
string name;
string password;
string email;
};
};


Slice Freeze command:
slice2freeze -I$(ICE_HOME)\slice --dict StringPersistentUserAccountMap,string,WGICE::PersistentUserAccount PersistentUserAccountMap PersistentUserAccount.ice


Linking libraries:
iced.lib iceutild.lib freezed.lib libdb42d.lib


Error message:
PersistentUserAccountMap.obj : error LNK2019: Nicht aufgelöstes externes Symbol
'"void __cdecl WGICE::__write(class IceInternal::BasicStream *,
class IceInternal::Handle<class WGICE::PersistentUserAccount> const &)"
(?__write@WGICE@@YAXPAVBasicStream@IceInternal@@3@@Z)',
verwiesen in Funktion '"public: static void __cdecl StringPersistentUserAccountMapValueCodec::write(class IceInternal::Handle<class WGICE::PersistentUserAccount> const &,
class std::vector<unsigned char,class std::allocator<unsigned char> > &,class IceInternal::Handle<class Ice::Communicator> const &)"
(?write@StringPersistentUserAccountMapValueCodec@@IceInternal@@std@@3@@Z)'

PersistentUserAccountMap.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"void __cdecl WGICE::__patch__PersistentUserAccountPtr(void *,
class IceInternal::Handle<class Ice::Object> &)"
(?__patch__PersistentUserAccountPtr@WGICE@@Z)',
verwiesen in Funktion '"public: static void __cdecl StringPersistentUserAccountMapValueCodec::read(class IceInternal::Handle<class WGICE::PersistentUserAccount> &,
class std::vector<unsigned char,class std::allocator<unsigned char> > const &,class IceInternal::Handle<class Ice::Communicator> const &)"
(?read@StringPersistentUserAccountMapValueCodec@@IceInternal@@std@@3@@Z)'

..\..\Debug/LoginTestServer.exe : fatal error LNK1120: 2 unaufgelöste externe Verweise


Thanks for any help!

Comments

  • mes
    mes California
    Hi,

    You also need to compile and link with the output of slice2cpp for your Slice definitions.

    If you are still having trouble, the quickest way to resolve is to attach a ZIP file containing your project and we'll take a look at it.

    Take care,
    - Mark
  • Solved!

    Hello again,
    thank you for that tip. I was missing a dependent class from which the map is generated. I added that to my solution and it links fine.

    Regards, and thanks for the quick answer on a Sunday!