Archived

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

vc 6 link error

I get this error:

LINK : fatal error LNK1104: cannot open file "stlport_vc6_static.lib"

when I try to make a simple DLL with Visual C++ 6.0. I followed the installation directions for Tools->Options->Directories. I added /libpath to the project link options.

I added ice.lib to the Object/Library Modules of Project Settings.

What am I missing?

Thanks,
Mark

Comments

  • I made the build verbose, and got:

    Linking...
    Start Pass1
    Processed /DEFAULTLIB:stlport_vc6_static.lib
    Processed /DEFAULTLIB:LIBCMTD
    Processed /DEFAULTLIB:OLDNAMES
  • You need to change your project's settings to use the dynamic DLL version of the Microsoft Runtime Library. In Project Settings|C/C++|Code Generation, there is a drop down list box under the label "Use run-time library:" that allows you to change this. You should use "Debug Multithreaded DLL" for the "Win32 Debug" configuration and "Multithreaded DLL" for "Win32 Release" configuration.

    Cheers,

    Brent
  • That worked. Thanks!
  • Sigh... Now I get:

    c:\ice-3.1.0-vc60\include\stlport\stl\debug\_debug.h(166) : warning C4005: '_STLP_DEBUG_CHECK' : macro redefinition
    c:\ice-3.1.0-vc60\include\stlport\stl\_config.h(375) : see previous definition of '_STLP_DEBUG_CHECK'
    c:\ice-3.1.0-vc60\include\stlport\stl\debug\_debug.h(167) : warning C4005: '_STLP_DEBUG_DO' : macro redefinition
    c:\ice-3.1.0-vc60\include\stlport\stl\_config.h(376) : see previous definition of '_STLP_DEBUG_DO'
    c:\ice-3.1.0-vc60\include\stlport\stl\debug\_vector.h(277) : error C2953: 'vector' : template class has already been defined
    c:\ice-3.1.0-vc60\include\stlport\stl\debug\_vector.h(277) : see declaration of 'vector'
    c:\ice-3.1.0-vc60\include\iceutil\mutex.h(141) : error C2065: 'TryEnterCriticalSection' : undeclared identifier
    c:\ice-3.1.0-vc60\include\ice\proxy.h(443) : error C2027: use of undefined type 'Object'
    c:\ice-3.1.0-vc60\include\ice\objectf.h(18) : see declaration of 'Object'
    c:\ice-3.1.0-vc60\include\ice\proxy.h(443) : error C2039: 'ice_facet' : is not a member of 'ProxyHandle<class Ice::Object>'
    Error executing cl.exe.

    I set Tools->Options->Directories->Include so that the Ice stl include directory is first...

    Sorry for the questions, I'm a vi and make Unix guy forced to work temporarily in the Windows world (gak). Is there a guide at www.zeroc.com for building Windows apps?

    Thanks,
    Mark
  • Perhaps it's an include order problem? If you do a search for "_STLP_DEBUG_CHECK" in this message board you get a few hits where people have had similar or related problems.

    With respect to a guide for creating Windows apps, I recommend looking at the Ice MFC demo. You might also consider checking out the "Integrating Ice with a GUI" articles in the ZeroC newsletter.