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!
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!
0
Comments
-
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,
- Mark0 -
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!0