hi, im having a strange problem when trying to emit a signal from a thread.
thread.h:
Code:
#ifndef USBCOM_H #define USBCOM_H #include <QObject> #include <QThread> { public: UsbCom(); void run(); signals: }; #endif // USBCOM_H
thread.cpp:
Code:
#include "usbcom.h" #include <QtGui> UsbCom::UsbCom() { } void UsbCom::run() { emit error("error!"); }
now when trying to compile this program i am getting an undefined refference error from the compiler.
Code:
Running build steps for project Project... Configuration unchanged, skipping QMake step. Starting: /usr/bin/make -w make: Entering directory `/home/sisco/Documents/School/Project 3/Project Software/Project' g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/home/sisco/qtsdk-2009.04/qt/mkspecs/linux-g++-64 -I. -I/home/sisco/qtsdk-2009.04/qt/include/QtCore -I/home/sisco/qtsdk-2009.04/qt/include/QtGui -I/home/sisco/qtsdk-2009.04/qt/include -I../../src -I../../src -Imoc -I. -o obj/project.o project.cpp g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/home/sisco/qtsdk-2009.04/qt/mkspecs/linux-g++-64 -I. -I/home/sisco/qtsdk-2009.04/qt/include/QtCore -I/home/sisco/qtsdk-2009.04/qt/include/QtGui -I/home/sisco/qtsdk-2009.04/qt/include -I../../src -I../../src -Imoc -I. -o obj/usbcom.o usbcom.cpp g++ -m64 -Wl,-rpath,/home/sisco/qtsdk-2009.04/qt/lib -o ../../examples/bin/Project obj/main.o obj/project.o obj/savedialog.o obj/overwritedialog.o obj/tables.o obj/usbcom.o obj/moc_project.o obj/moc_savedialog.o obj/moc_overwritedialog.o obj/moc_tables.o obj/qrc_icons.o -L/home/sisco/qtsdk-2009.04/qt/lib -L../../lib -lqwt -lusb-1.0 -lQtGui -L/home/sisco/qtsdk-2009.04/qt/lib -L/usr/X11R6/lib64 -pthread -lfreetype -lgobject-2.0 -lSM -lICE -pthread -pthread -lXrender -lfontconfig -lXext -lX11 -lQtCore -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread obj/usbcom.o: In function `UsbCom::run()': /home/sisco/Documents/School/Project 3/Project Software/Project/usbcom.cpp:10: undefined reference to `UsbCom::error(QString)' collect2: ld returned 1 exit status make: Leaving directory `/home/sisco/Documents/School/Project 3/Project Software/Project' make: *** [../../examples/bin/Project] Error 1 Exited with code 2. Error while building project Project When executing build step 'Make'
code used in my main class:
Code:
usbcom = new UsbCom(); usbcom->start();
what am i doing wrong?