STLport 4.6.2 mit VC6 + Toolkit 2003



  • Hallo.

    Ich habe mir vor ein paar Tagen das Visual Studio Toolkit 2003 gezogen und damit meinen VC6 aufgerüstet (dessen Dateien mit den neuen überschrieben - liegt schon hier mein Fehler? Hab auf der MS-Seite nix dazu gefunden).
    Anschließend versuchte ich, STLport damit zu kompilieren, woran ich bis jetzt gescheitert bin und nun auch nicht mehr weiter weiß.

    Zunächst gab es Probleme mit den Interlocked-Funktionen aus der windows.h. Der übliche Tipp, _STLP_NEW_PLATFORM_SDK zu definieren, brachte auch nichts. Erst das Umschalten auf Prototypen für ältere Compiler ließ das Kompilieren beginnen (Auszug aus der _threads.h von STLport):

    #if (_MSC_VER >= 1300) || defined (_STLP_NEW_PLATFORM_SDK)
    // von mir auskommentiert
    //_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long volatile *);
    //_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long volatile *);
    //_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long volatile *, long);
    //#else
      // boris : for the latest SDK, you may actually need the other version of the declaration (above)
      // even for earlier VC++ versions. There is no way to tell SDK versions apart, sorry ...
    _STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long*);
    _STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long*);
    _STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long*, long);
    #endif
    

    Nun bekomme ich allerdings Linker-Fehler über "5 unresolved externals":

    error LNK2001: unresolved external symbol "void __cdecl operator delete[](void *)"
    error LNK2001: unresolved external symbol "void * __cdecl operator new[](unsigned int)"
    error LNK2001: unresolved external symbol __aulldvrm
    error LNK2001: unresolved external symbol "void __stdcall `eh vector copy constructor iterator'
    (void *,void *,unsigned int,int,void (__thiscall*)(void *,void *),void (__thiscall*)(void *))"
    error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall bad_cast::bad_cast(char const *)"
    

    Hier bin ich leider mit meinem Latein am Ende. Ich hab nichts gefunden, wo z.B. die Operatoren definiert sein sollen. Die Fehlermeldungen sind jetzt zusammengefaßt und gekürzt (sind 64 Stück und kommen in fast allen Modulen vor). Falls gewünscht, poste ich auch nochmal die komplette Liste.

    Helft mir, C++ Forum, Ihr seid meine letzte Hoffnung. 😉

    P.S.: War mir nicht sicher, ob das eher zum VC++ oder eher zur Bibliothek gehört. Ich überlasse einem Mod die Entscheidung.


Anmelden zum Antworten