• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

erstes QT Programm und gleich Probleme :-)

mycroft

Member
Hallo @all,

ich arbeite gerade mit dem Buch "Linux Programmierung" in einem Kapitel geht es auch um KDE und QT.
Folgendes Kurze Programm ist abgedruckt:
Code:
#include <qapplication.h>  // QApplication
#include <qmainwindow.h>   // QMainWindow

using namespace std;

int main(int argc, char **argv)
{
	QApplication app(argc, argv);
	QMainWindow *window = new QMainWindow();
	window->setGeometry(200, 200, 400, 300);
	app.setMainWidget(window);
	window->setCaption("My QMainWindow example");
	window->show();
	return app.exec();
}
//EOF


Compileraufruf:
Code:
> g++ -o firstWin firstWin.cpp -I$QTDIR/include -L$QTDIR/lib -lqt
/usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: cannot find -lqt
collect2: ld returned 1 exit status

So wie ich den Fehler verstehe, soll eine qt Library dazugelinkt werden. Mir ist aber nicht ganz klar, was ich machen muß, damit dies klappt.
Ein bischen Hilfe wäre super.
Dake schön.
Grüße
mycroft [/code]
 

}-Tux-{

Hacker
Linke das Ganze einfach gegen "lqt-mt", da es keine "lqt" Libarary gibt.
Zudem solltest du darauf achten, dass du vorher $QTDIR korrekt exportiert
hast.


}-Tux-{
 
OP
M

mycroft

Member
Hmm, hat nicht geklapt

Hier mal der eingestellt Pfad:

Code:
> echo $QTDIR
/usr/lib/qt3
Fehlermeldung:
Code:
/usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse-linux/bin/ld: cannot find -lqt-mt
collect2: ld returned 1 exit status

Meine /ect/ld.so.conf sieht so aus:
Code:
/usr/X11R6/lib64/Xaw3d
/usr/X11R6/lib64
/usr/lib64/Xaw3d
/usr/X11R6/lib/Xaw3d
/usr/X11R6/lib
/usr/lib/Xaw3d
/usr/x86_64-suse-linux/lib
/usr/local/lib
/opt/kde3/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/opt/kde3/lib64
/usr/lib/qt3/lib64 <-- habe ich manuel ergänzt
include /etc/ld.so.conf.d/*.conf

Habe ich da was flasch gemacht?
 

spoensche

Moderator
Teammitglied
füge mal noch folgendes beim compileraufruf ein:
Code:
-I/usr/lib/qt3/mkspecs/default

dann sollte es eigentlich gehen.
 
OP
M

mycroft

Member
so, danke für Eure Tips. Jetzt läuft es mit folgendem Compileraufruf:

Code:
g++ -o firstWin firstWin.cpp -I$QTDIR/include -L$QTDIR/lib64 -lqt-mt

Ich hatte vorher nur das Verzeichnis lib und nicht lib64 angegeben, das scheint es wohl gewesen zu sein.

Herzlichen Dank an Euch Beide für die Hilfe.
Grüße
mycroft
 

Mumie

Hacker
mycroft schrieb:
so, danke für Eure Tips. Jetzt läuft es mit folgendem Compileraufruf:

Code:
g++ -o firstWin firstWin.cpp -I$QTDIR/include -L$QTDIR/lib64 -lqt-mt

Tatsächlich, damit klappt das auch. Ich habe das immer so gemacht:

1.) Einen Ordner xyz erstellen.
2.) Das Listing hineinkopieren und xyz.cpp nennen.

dann
Code:
 qmake -project
 qmake
 make

Das dauert etwas länger. Und man hat mehr Dateien. Man hat aber das gleiche Ergebnis. Wenn ich genau hinschaue, dann ist das fertige Programm etwas größer.
 
OP
M

mycroft

Member
Hi Mumie,
das werde ich heute Abend auch mal probieren. Finde ich auch net schlecht. Danke für den Tipp :wink:
 
Oben