foobar
28-02-2006, 15:31
hallo erstmal
ich hab vor kurzem mit der Qt-programmierung begonnen und bin schon recht bald auf ein problem gestoßen bei dem ich nicht weiterkomme
deshalb hab ich mich prompt hier registriert damit ich euch bitten kann mir bei der lösung ein wenig zu helfen :)
also: ich bin dabei ein programm mit einem eigenen kleinen widget zu programmieren das auch ein SIGNAL besitzen soll
um euch meinen eigenen code zu ersparen beziehe ich mich mal auf das entsprechende trolltech tutorial (http://doc.trolltech.com/3.3/tutorial1-07.html)
denn der dürfte recht fehlerfrei sein aber es tritt das selbe problem auf wie bei meinem eigenen projekt
das problem: er will es nicht kompilieren weder aus kdevelop3 heraus noch direkt auf der kommandozeile
(ich poste hier mal nur die ausgabe auf der kommandozeile)
g++ -c -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o lcdrange.o lcdrange.cpp
g++ -c -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o main.o main.cpp
/usr/share/qt3/bin/moc lcdrange.h -o moc_lcdrange.cpp
g++ -c -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o moc_lcdrange.o moc_lcdrange.cpp
/usr/include/qt3/private/qucom_p.h:69: Warnung: »struct QUBuffer« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:77: Warnung: »struct QUType« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:104: Warnung: »struct QUType_Null« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:287: Warnung: »struct QUType_enum« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:307: Warnung: »struct QUType_ptr« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:326: Warnung: »struct QUType_iface« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:345: Warnung: »struct QUType_idisp« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:364: Warnung: »struct QUType_bool« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:383: Warnung: »struct QUType_int« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:403: Warnung: »struct QUType_double« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:423: Warnung: »struct QUType_charstar« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:444: Warnung: »struct QUType_QString« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucomextra_p.h:65: Warnung: »struct QUType_QVariant« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucomextra_p.h:87: Warnung: »struct QUType_varptr« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
g++ -o t7 lcdrange.o main.o moc_lcdrange.o -L/usr/share/qt3/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lpthread
/usr/lib/gcc/i486-linux-gnu/4.0.2/../../../../lib/crt1.o: In function `_start':
../sysdeps/i386/elf/start.S:115: undefined reference to `main'
collect2: ld gab 1 als Ende-Status zurück
make: *** [t7] Fehler 1
(vorher natürlich qmake -project und qmake)
nach einigem rumprobieren bin ich dann darauf gekommen das das problem wohl irgendwie mit dem Q_OBJECT makro zu tun hat denn wenn ich den weglasse kann ich es kompilieren und starten
nach einigem google'n bin ich auf nichts brauchbareres gekommen als nochmal alles ausser den quellen zu löschen und neu zu kompilieren was dann wohl die "moc_*.cpp" dateien erstellen soll aber geholfen hat es bei mir nicht
mein system:
OS: linux ubuntu breezy badger
Qt: 3.3.4
g++: 4.0 und 3.4
ich wär sehr dankbar wenn mir jemand helfen könnte ich komme ansonsten nicht weiter : /
ich hab vor kurzem mit der Qt-programmierung begonnen und bin schon recht bald auf ein problem gestoßen bei dem ich nicht weiterkomme
deshalb hab ich mich prompt hier registriert damit ich euch bitten kann mir bei der lösung ein wenig zu helfen :)
also: ich bin dabei ein programm mit einem eigenen kleinen widget zu programmieren das auch ein SIGNAL besitzen soll
um euch meinen eigenen code zu ersparen beziehe ich mich mal auf das entsprechende trolltech tutorial (http://doc.trolltech.com/3.3/tutorial1-07.html)
denn der dürfte recht fehlerfrei sein aber es tritt das selbe problem auf wie bei meinem eigenen projekt
das problem: er will es nicht kompilieren weder aus kdevelop3 heraus noch direkt auf der kommandozeile
(ich poste hier mal nur die ausgabe auf der kommandozeile)
g++ -c -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o lcdrange.o lcdrange.cpp
g++ -c -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o main.o main.cpp
/usr/share/qt3/bin/moc lcdrange.h -o moc_lcdrange.cpp
g++ -c -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o moc_lcdrange.o moc_lcdrange.cpp
/usr/include/qt3/private/qucom_p.h:69: Warnung: »struct QUBuffer« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:77: Warnung: »struct QUType« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:104: Warnung: »struct QUType_Null« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:287: Warnung: »struct QUType_enum« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:307: Warnung: »struct QUType_ptr« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:326: Warnung: »struct QUType_iface« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:345: Warnung: »struct QUType_idisp« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:364: Warnung: »struct QUType_bool« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:383: Warnung: »struct QUType_int« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:403: Warnung: »struct QUType_double« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:423: Warnung: »struct QUType_charstar« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucom_p.h:444: Warnung: »struct QUType_QString« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucomextra_p.h:65: Warnung: »struct QUType_QVariant« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
/usr/include/qt3/private/qucomextra_p.h:87: Warnung: »struct QUType_varptr« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
g++ -o t7 lcdrange.o main.o moc_lcdrange.o -L/usr/share/qt3/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lpthread
/usr/lib/gcc/i486-linux-gnu/4.0.2/../../../../lib/crt1.o: In function `_start':
../sysdeps/i386/elf/start.S:115: undefined reference to `main'
collect2: ld gab 1 als Ende-Status zurück
make: *** [t7] Fehler 1
(vorher natürlich qmake -project und qmake)
nach einigem rumprobieren bin ich dann darauf gekommen das das problem wohl irgendwie mit dem Q_OBJECT makro zu tun hat denn wenn ich den weglasse kann ich es kompilieren und starten
nach einigem google'n bin ich auf nichts brauchbareres gekommen als nochmal alles ausser den quellen zu löschen und neu zu kompilieren was dann wohl die "moc_*.cpp" dateien erstellen soll aber geholfen hat es bei mir nicht
mein system:
OS: linux ubuntu breezy badger
Qt: 3.3.4
g++: 4.0 und 3.4
ich wär sehr dankbar wenn mir jemand helfen könnte ich komme ansonsten nicht weiter : /