Home Help Center

problem to build demos with VC 6.0

jxiejxie Member
Hi,there:

When I build the ICE demo such as Latency example with VC6.0, it failed,it can not resolve external symbol while linking. But it works with Visual Studio .net.

I checked the project setting: the iced.lib iceutild.lib are there and in the menu tool\option directories tab I set the lib path to the ice lib path,did I miss anything else? Compiling was ok.

The error messages look like this:

Client.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall IceProxy::Ice::Object::ice_ping(class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<class std::basic_string<char,struct std::char
.....

Latency.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __thiscall IceProxy::Ice::Object::ice_isA(class std::basic_string<char,struct std::char_traits<char>,class
.......

Thanks!

Comments

  • marcmarc FloridaAdministrators, ZeroC Staff Marc LaukienOrganization: ZeroC, Inc.Project: The Internet Communications Engine ZeroC Staff
    This looks to me as if STLport is either not found during compilation, linking, or execution:
    • Make sure that during compilation you have STLport's include/stlport directory in your INCLUDE path. (Note: Just using STLport's include directory won't work.)
    • Make sure that the linker can find the STLport library.
    • Make sure that the STLport DLL is in your PATH.

    Hope this helps!
  • jxiejxie Member
    I tried as you said,it still can not work out. I am wondering why it works in Visual studio.net, I didn't install STLport at that time,but it works fine. It's kind of wierd,but anyway I can build it in visual studio.net.

    Thanks!
  • marcmarc FloridaAdministrators, ZeroC Staff Marc LaukienOrganization: ZeroC, Inc.Project: The Internet Communications Engine ZeroC Staff
    Well, with Visual C++ .NET, you don't need STLport. You only need STLport with Visual C++ 6.0.

    Perhaps you mixed Ice libraries compiled with Visual C++ .NET with code compiled with Visual C++ 6.0?
  • jxiejxie Member
    Yeah you might make the point. The iced.lib and iceutild.lib I used is from the binary package which is download from your web site,I think it is build in visual studio.net.

    Thanks!
  • marcmarc FloridaAdministrators, ZeroC Staff Marc LaukienOrganization: ZeroC, Inc.Project: The Internet Communications Engine ZeroC Staff
    That's correct. You cannot use the binary package with Visual C++ 6.0. You must compile Ice with Visual C++ 6.0 and STLport.
Sign In or Register to comment.