grias ench!
folgende frage an alle c++ gurus.. ich glaub aber, dass es eher was mitm visual studio zu tun hat..
eine einfache klasse, die sich selbst verwalten soll:
C
#ifndef ___OBJECT_H___
#define ___OBJECT_H___
#define AUTO_SIZE UINT size( void ) { return( sizeof( *this ) ); }
#define AUTO_NAME( name ) std::string toString( void ) { return std::string( name ); }
#include <list>
class Object
{
private:
static std::list< Object* > liveObjects;
static std::list< Object* > deadObjects;
UINT uiRefCount;
protected:
Object( void );
virtual ~Object( void );
public:
ARESULT AddRef( void );
ARESULT Release( void );
static ARESULT CollectGarbage( void );
static ARESULT CollectRemainingObjects( bool bEmitWarnings = true );
virtual UINT size( void ) = 0;
virtual std::string toString( void ) = 0;
};
#endif
Alles anzeigen
die quelldatei dazu kompiliert ohne probleme.. aber wenn ich zum linken komm, bekomm ich folgende fehlermeldung:
Code
Linker-Vorgang läuft...
Object.obj : error LNK2001: Nichtaufgeloestes externes Symbol "private: static class std::list<class Object *,class std::allocator<class Object *> > Object::liveObjects" (?liveObjects@Object@@0V?$list@PAVObject@@V?$allocator@PAVObject@@@std@@@std@@A
)
Object.obj : error LNK2001: Nichtaufgeloestes externes Symbol "private: static class std::list<class Object *,class std::allocator<class Object *> > Object::deadObjects" (?deadObjects@Object@@0V?$list@PAVObject@@V?$allocator@PAVObject@@@std@@@std@@A
)
Debug/engine.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
und ich hab keine ahnung warum.. kann es sein, dass ich irgendwelche linker-optionen ändern muss, wenn ich die stl verwenden will?
ich würd mich über hilfreiche tips freuen!
F
PS: ich lad grad service pack 5 runter.. vielleicht gehts ja dann..