ich habe eine Klasse, die einen Slot haben soll. Dazu muss ich das Makro Q_OBJECT ganz oben reinschreiben. Das Problem ist, sobald ich das mache findet der Linker keine vtable mehr für diese klasse!?
hier ein paar schnippsel :
Code: Alles auswählen
#include <QtCore>
#include <QtGui>
#include <QObject>
//[...]
class cDataManager : public QObject
{
Q_OBJECT
public:
DMAN_MAP_TYPE data;
mainWindow* owner;
cDataManager(mainWindow *parent);
~cDataManager();
void addDataSeries(cDataSeries dat);
void removeDataSeries(QString key);
public slots:
void changeValue(int row, int column);
};Code: Alles auswählen
g++ -o app main.o cDataManager.o mainWindow.o polarizer.o -L/usr/lib -lQtGui -L/build/buildd/qt4-x11-4.2.0/lib -L/usr/X11R6/lib -L/usr/local/qwt/lib -laudio -lXt -lpng -lSM -lICE -lXrender -lXrandr -lXfixes -lXcursor -lXinerama -lfreetype -lXext -lX11 -lQtCore -lfontconfig -lz -lm -lglib-2.0 -ldl -lpthread -lqwt
cDataManager.o: In function `cDataManager::cDataManager(mainWindow*)':
cDataManager.cpp:(.text+0xb0): undefined reference to `vtable for cDataManager'
cDataManager.o: In function `cDataManager::cDataManager(mainWindow*)':
cDataManager.cpp:(.text+0x100): undefined reference to `vtable for cDataManager'
cDataManager.o: In function `cDataManager::~cDataManager()':
cDataManager.cpp:(.text+0x3da): undefined reference to `vtable for cDataManager'
cDataManager.o: In function `cDataManager::~cDataManager()':
cDataManager.cpp:(.text+0x49a): undefined reference to `vtable for cDataManager'
cDataManager.o: In function `cDataManager::~cDataManager()':
cDataManager.cpp:(.text+0x52a): undefined reference to `vtable for cDataManager'
collect2: ld returned 1 exit status
make: *** [app] Fehler 1
wenn ich das makro rausnehme kompiliert er brav aber der slot wird halt zur laufzeit nicht gefunden.
für anregungen bin ich dankbar! Martin