This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project. See the Cygwin home page for more information.
Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

DLL's and templates


Hello,

currently I am trying to link my own first DLL (Mumits samples worked quite
well), but I got unresolved externals for the vtable of all template classes
used within my DLL. Typically following code:

// header.h

class __declspec(dllexport) A
{
public:
	A() {}
	virtual ~A() {} 
};


template <class X>
class B : public A
{
public:
	B() {}
	virtual ~B() {}
};


// module.cxx

static B b;


Compiling and linking the DLL I will have an unresolved external vor the
vtable of B or for inlined virtual destructors. B is not necessarily
exported.

Original error messages:
..\egcs112\rel\gwbase\sh\gwstrsb.o(.text+0x2ba3):gwstrsb.cc: undefined
reference to `GwSingletonClass<GwMemoryCluster>::~GwSingletonClass(void)'
..\egcs112\rel\gwbase\sh\gwstrwc.o(.text$__t13GwTMemoryPool1Z13GwWCStringImp
i+0x6b):gwstrwc.cc: undefined reference to `GwTMemoryPool<GwWCStringImp>
virtual table'

Greetings Jörg


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com