Probleme beim Kompilieren bei der Verwendung von Qt
Hallo zusammen, ich habe gerade begonnen mich mit der Programmierung der Qt-Bibliothek zu beschäftigen. Dabei bin ich wirklich nicht weit gekommen, da ich Probleme beim Kompilieren habe. Sobald ich die Qt-Klassen verwende erhalte ich Fehlermeldungen des Kompilers wie "undefined reference to ....". Für die erste Aufgabe im Online-Tutorial der Qt-Bibliothek sieht die Ausgabe des Kompilers z.B. so aus: %:/usr/lib/qt3/doc/tutorial/t1 # g++ -I$QTDIR/include main.cpp /tmp/cc3xFuxk.o: In function `main': /tmp/cc3xFuxk.o(.text+0x1a): undefined reference to `QApplication::QApplication(int &, char **)' /tmp/cc3xFuxk.o(.text+0x31): undefined reference to `QString::QString(char const *)' /tmp/cc3xFuxk.o(.text+0x4d): undefined reference to `QPushButton::QPushButton(QString const &, QWidget *, char const *)' /tmp/cc3xFuxk.o(.text+0x83): undefined reference to `QPushButton::resize(int, int)' /tmp/cc3xFuxk.o(.text+0x99): undefined reference to `QApplication::setMainWidget(QWidget *)' /tmp/cc3xFuxk.o(.text+0xab): undefined reference to `QWidget::show(void)' /tmp/cc3xFuxk.o(.text+0xba): undefined reference to `QApplication::exec(void)' /tmp/cc3xFuxk.o(.text+0xd0): undefined reference to `QPushButton::~QPushButton(void)' /tmp/cc3xFuxk.o(.text+0xe1): undefined reference to `QApplication::~QApplication(void)' /tmp/cc3xFuxk.o(.text+0x12d): undefined reference to `QPushButton::~QPushButton(void)' /tmp/cc3xFuxk.o(.text+0x140): undefined reference to `QApplication::~QApplication(void)' /tmp/cc3xFuxk.o: In function `QString::~QString(void)': /tmp/cc3xFuxk.o(.gnu.linkonce.t._._7QString+0x26): undefined reference to `QString::shared_null' /tmp/cc3xFuxk.o(.gnu.linkonce.t._._7QString+0x2e): undefined reference to `QString::shared_null' /tmp/cc3xFuxk.o(.gnu.linkonce.t._._7QString+0x3d): undefined reference to `QStringData::deleteSelf(void)' collect2: ld returned 1 exit status Die Umgebungsvariablen habe ich wie in der Online-Doku gefordert in .profile eingetragen. Dennoch lässt sich kein Qt-Programm erzeugen. Vielen Dank für den, der mir auf die Sprünge hilft. Gruß Oliver Maresch -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ NEU: Mit GMX ins Internet. Günstige DSL- & Modem/ISDN-Tarife!
Am Die, 01 Okt 2002 schrieb Oliver Maresch:
Hallo zusammen,
ich habe gerade begonnen mich mit der Programmierung der Qt-Bibliothek zu beschäftigen. Dabei bin ich wirklich nicht weit gekommen, da ich Probleme beim Kompilieren habe. Sobald ich die Qt-Klassen verwende erhalte ich Fehlermeldungen des Kompilers wie "undefined reference to ....". Für die erste Aufgabe im Online-Tutorial der Qt-Bibliothek sieht die Ausgabe des Kompilers z.B. so aus:
Undefined Reference ist strenggenommen keine Fehlermeldung des Compilers sondern des Linkers, wenn er die Adresse einer irgendwo in Deinem Programm verwendeten Routine in keinem der Objectfiles bzw. Bibliotheken finden kann.
%:/usr/lib/qt3/doc/tutorial/t1 # g++ -I$QTDIR/include main.cpp
Du linkst nicht gegen die QT-Bibliothek Ich würde als Compileraufruf mal vorschlagen g++ -I$QTDIR/include -L$QTDIR/lib -lqt main.cpp Langfristig (insbesondere, wenn Du mehr als eine Quellcodedatei hast) solltest Du Compilierung und Linken auftrennen g++ -c -I$QTDIR/include -o main.o main.cpp g++ -L$QTDIR/lib -lqt -o MeineAnwendung main.o Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Christoph Maurer
Langfristig (insbesondere, wenn Du mehr als eine Quellcodedatei hast) solltest Du Compilierung und Linken auftrennen
g++ -c -I$QTDIR/include -o main.o main.cpp g++ -L$QTDIR/lib -lqt -o MeineAnwendung main.o
Ich würde noch die Verwendung der Warnoptionen empfehlen. Für C und C++ verwende ich -W -Wall -Wpointer-arith -Wformat-security wobei für C noch -Wstrict-prototypes -Wmisssing-prototypes dazu kommen. Philipp -- Philipp Thomas Arbeit: pthomas@suse.de Entwicklung, SuSE Linux AG Privat: pth@t-link.de
participants (3)
-
Christoph Maurer
-
Oliver Maresch
-
Philipp Thomas