Mail Archives: cygwin/1999/05/06/12:40:12
You're not using the template invocation correctly:
static B b; // Incorrect, based on the example you gave.
// Compiler should have not even allowed the
// linkage stage, so you're definately missing
// something in your code example !
It needs something like this:
class C
{
int m_dummy;
};
static B<C> b; // This is correct.
My suspicion is the C class, which you left out, has some virtual functions
in it which you have not filled out ?
-----Original Message-----
From: Schaible, Joerg [mailto:Joerg DOT Schaible AT gft DOT de]
Sent: Thursday, May 06, 1999 12:13 AM
To: 'cygwin-list'
Subject: 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 AT sourceware DOT cygnus DOT com
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
- Raw text -