Ik heb het volgende probleem.
Ik heb een basisclass Object
Nu heb ik ook classes die overerven van deze klasse Object. Ik heb voor deze klasses netjes virtual function compareTo en een destructor gemaakt. Compilen gaat goed, maar het linken geeft problemen.
vector.o: In function `Vector::~Vector(void)':
vector.o(.gnu.linkonce.t._._6Vector+0x29): undefined reference to `Object virtual table'
Dit heb ik dus bij alle classes die erven van Object.
Mijn Makefile :
Makefile.inc
Moet ik extra parameters meegeven bij het linken of wat doe ik verkeerd?
Ik heb een basisclass Object
code:
1
2
3
4
5
6
7
| class Object
{
public:
Object () {}
virtual ~Object () {}
virtual int compareTo(Object *);
}; |
Nu heb ik ook classes die overerven van deze klasse Object. Ik heb voor deze klasses netjes virtual function compareTo en een destructor gemaakt. Compilen gaat goed, maar het linken geeft problemen.
vector.o: In function `Vector::~Vector(void)':
vector.o(.gnu.linkonce.t._._6Vector+0x29): undefined reference to `Object virtual table'
Dit heb ik dus bij alle classes die erven van Object.
Mijn Makefile :
code:
1
2
3
4
5
6
| PROGNAME=rekhdrs OBJS=persoon.o rekeninghouder.o vector.o databasemanager.o rekhdrs.o CFLAGS=-O2 -march=i586 -Wall -Isuc/src -I'/usr/include/mysql' LDFLAGS=-s -Lsuc/src -lsuc -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lldap include Makefile.inc |
Makefile.inc
code:
1
2
3
4
5
6
7
8
| ${PROGNAME}: ${OBJS}
g++ ${CFLAGS} ${LDFLAGS} -o ${PROGNAME} ${OBJS}
%.o: %.cpp
g++ -c ${CFLAGS} -o $@ $<
clean:
rm -f ${OBJS} ${PROGNAME} core |
Moet ik extra parameters meegeven bij het linken of wat doe ik verkeerd?