Hallo!
Ich bin gerade dabei mir ein bisschen QT anzueignen.
Habe für meine erste Anwendung also in KDevelop ein
C++ Projekt unter QMake/Application erzeugt.
Das Programm besteht eigentlich aus nur einem Dialog, welcher
als eigene Klasse existiert.
Wenn ich den Code nun mit "Rebuild Project" erneut kompilieren will
(erneut weil ich die Klasse in eine andere Datei ausgelagert habe und sonst
Änderungen in dieser sonst nicht berücksichtigt würden),
bekomme ich folgende Fehlermeldungen:
Code:
cd '/home/xargon/progging_stuff/qt_finddialog' && QTDIR="/usr/local/qt" gmake -k clean && QTDIR="/usr/local/qt" gmake -k
( [ -d src ] && cd src ; grep "^qmake_all:" Makefile && gmake -f Makefile qmake_all; ) || true
( [ -d src ] && cd src ; gmake -f Makefile clean; ) || true
rm -f moc_qt_finddialog.o
rm -f moc_qt_finddialog.cpp
rm -f qt_finddialog.o main.o
rm -f *~ core *.core
cd src && gmake -f Makefile
compiling qt_finddialog.cpp (g++)
compiling main.cpp (g++)
generating moc_qt_finddialog.cpp (moc)
compiling moc_qt_finddialog.cpp (g++)
test -d ../bin/ || mkdir -p ../bin/
linking ../bin/qt_finddialog (g++)
main.o(.text+0x23): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `vtable for FindDialog'
main.o(.text+0x2a): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `vtable for FindDialog'
main.o(.text+0x3a): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x7a): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x109): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x159): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x1a9): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x22b): more undefined references to `FindDialog::tr(char const*, char const*)' follow
main.o(.text+0x4e3): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `vtable for FindDialog'
main.o(.text+0x4ea): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `vtable for FindDialog'
main.o(.text+0x4fa): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x53a): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x5c9): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference
to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x619): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x669): In function `FindDialog::FindDialog(QWidget*, char const*)':
: undefined reference to `FindDialog::tr(char const*, char const*)'
main.o(.text+0x6eb): more undefined references to `FindDialog::tr(char const*, char const*)' follow
main.o(.text+0x9c0): In function `FindDialog::findClicked()':
: undefined reference to `FindDialog::findPrev(QString const&, bool)'
main.o(.text+0xa09): In function `FindDialog::findClicked()':
: undefined reference to `FindDialog::findNext(QString const&, bool)'
collect2: ld returned 1 exit status
gmake[1]: *** [../bin/qt_finddialog] Error 1
gmake[1]: Target `first' not remade because of errors.
gmake: *** [sub-src] Error 2
gmake: Target `first' not remade because of errors.
*** Exited with status: 2 ***
Undefined Reference kenne ich nur in dem Zusammenhang,
alsdass der Compiler bestimmte Libraries nicht linken kann.
Hier dürfte dir das eigentlich nicht der Fall sein, da das Projekt ja
als "QT-Programm" ausgelegt ist.
Danke schonmal für eure Hilfe.
mfg
awehrm
Lesezeichen