Archived

This topic is now archived and is closed to further replies.

Inheriting an abstract class from a precompiled-library, in a precompiled libarary

This topic is 5780 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, I have a slight problem. Let class Resource be an abstract class in a static library called "Util". Resource implements pure virtual: WriteResource and non-virtual WriteBaseResource. Now let class BitmapResource inherit Resource in a static library called "Graphics2D". I _believe i did something like this before in MSVC i just linked to "Util" when compiling "Graphics2D". However now that i''m using kdevelop (which uses gcc) its giving me problems. compiling the .a file (the static library) its fine, but when it comes time to use it, it complains of an undefined refernece to Resource::WriteBaseResource() So my question is: How would i implement this type of architecture where both "Util" and "Graphics2D" are static libraries that will be later used? Thx in advance The wymsical wyvern

Share this post


Link to post
Share on other sites
Sounds like this should be right. The class is defined in the .h file in your library, and the non-virtual function should be defined in your library''s object code. Are you sure you''re linking in the library, not just including its headers?

Share this post


Link to post
Share on other sites
yep

i did a test program, i made class foo:

class foo {
foo() {}
~foo() {}

static int i;
};

in foo.cpp:
int foo::i = 0;

i compiled that into a .a file with somethign like:
ar foo.o libfoo.a

then i made:
class foobar : public foo {

foobar() { int junk = i; }
~foobar();
};

compiling foobar into libfoobar.a is fine,
but as soon as i make an app:

void main( void ) {

foobar aFooBar;
}

it complains and i''m 100% sure that i link to libfoo.a and libfoobar.a

Share this post


Link to post
Share on other sites