Seite 1 von 2
Problem mit Kompilieren
Verfasst: 8. März 2006 23:16
von Spielgrips
Hallo, ich fang im Moment Qt für mich selber zu erforschen, hab mir ein Buch über Qt geholt und wollte mein erstes Qt kompilieren und leider klappt nicht der Befehl der im Buch abgedruckt ist nicht.
Code: Alles auswählen
export QTDIR=/usr/share/qt3
c++ -I$QTDIR/include -L$QTDIR/lib -lqt -o myapp myapp.c
Ausgabe ist:
/usr/bin/ld: cannot find -lqt
collect2: ld gab 1 als Ende-Status zurück
Weiß ihr weiter? Ist langsam ernüchtern immer vor eine Wand zu stoßen :/!
Verfasst: 9. März 2006 07:31
von Christian81
Verfasst: 9. März 2006 09:54
von Spielgrips
Das was du meinst ist eine qmake project datei, ich mein das kompilieren von single .c dateien mit g++ oder c++.
Wenn ich das als Project kompilieren möchte, mit diesen Code:
Und dann qmake ausführe wie im Buch, erzeugt er wie geplant ein Makefile ohne Probleme, nur das Problem ist, dass er wenn ich make dann mach, das er g++ ausführt mit ohne diesen Argumenten und dann nur schrott auskommt, eben das ist nicht definiert und bool ist nicht dort erlaubt usw.... Sieht mir nach nicht gesetzten libs und headers aus. Ich hab aber QTDIR und QTMAKESPECS gesetzt als Variable :/!
Verfasst: 9. März 2006 09:56
von Christian81
Dann eben '-lqt-mt'
Verfasst: 9. März 2006 10:03
von Spielgrips
danke dir!!!!!!!!
Dev c++
Verfasst: 9. März 2006 10:47
von Spielgrips
Eine Frage habe ich noch und zwar wenn ich das in Windows kompilieren möchte mit Dev C++ und das Open Source Edition draufmache und die include, libs beim compiler angebe und dann diesen Code kompiliere:
Code: Alles auswählen
#include <qapplication.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qfont.h>
int main(int argc, char* argv[])
{
QApplication myapp(argc, argv);
QWidget* mywidget = new QWidget();
mywidget->setGeometry(200, 100, 450, 150);
QPushButton* erster_button = new QPushButton("Quit mit pressed()", mywidget);
erster_button->setGeometry(30, 10, 400, 30);
QObject::connect(erster_button, SIGNAL(pressed()), &myapp, SLOT(quit()));
QLabel* myLabel = new QLabel("Ein Programm mit zwei Quit - Buttons", mywidget);
myLabel->setGeometry(30, 40, 400, 50);
myLabel->setFont(QFont("Times", 18, QFont::Bold));
QPushButton* zweiter_button = new QPushButton("Quit mit clicked()", mywidget);
zweiter_button->setGeometry(30, 90, 400, 50);
QObject::connect(zweiter_button, SIGNAL(clicked()), &myapp, SLOT(quit()));
myapp.setMainWidget(mywidget);
mywidget->show();
return myapp.exec();
}
Sagt er das setMainWidget kein Member der QApplication Klasse ist :/! Komischweise funktioniert der Code in Linux

! Nur bei Dev C++ nicht so :/! Oder gibs das seit Qt4 nicht mehr?
Verfasst: 9. März 2006 10:53
von Christian81
Qt4 != Qt3 würde ich mal sagen

Verfasst: 9. März 2006 10:56
von Spielgrips
Gibs den Qt3 als Open Source Edition noch??
Verfasst: 9. März 2006 11:00
von Christian81
Spielgrips hat geschrieben:Gibs den Qt3 als Open Source Edition noch??
Gabs noch nie
Verfasst: 9. März 2006 11:06
von Spielgrips
In der Dokumentation steht das die alten Member von QApplication.h noch unterstützt werden und sind in der Doc auch noch zu finden!
Aber gibs da irgendwie eine spezielle Header Datei die man mit einbinden muss oder muss man noch was angeben an Flags?
Verfasst: 9. März 2006 11:10
von Christian81
Man muss QT3_SUPPORT definieren und ausserdem gegen qt3support linken.
http://doc.trolltech.com/4.1/porting4.html
Warum m uss es unbedingt Qt3 sein?
Verfasst: 9. März 2006 11:23
von Spielgrips
Weil mein Buch auf Qt3 ausgelegt ist

! Und die Doc sehr unübersichtlich ist und mir eher einen Angst - Zustand mir übermittelt...
Oder mal eine andere Frage, wie setzt man den in Qt4 das Hauptwidget?
Verfasst: 9. März 2006 11:30
von Christian81
Spielgrips hat geschrieben: Und die Doc sehr unübersichtlich ist und mir eher einen Angst - Zustand mir übermittelt...
Das ist das erste Mal das ich sowas höre - die Docu von Qt wird eigentlich überall gelobt.
Ausserdem sollten die vielen Beispiele und Demos die Qt beiliegen reichen um einen Überblick zu bekommen.
Verfasst: 9. März 2006 11:30
von Spielgrips
Oder mal eine andere Frage, wie setzt man den in Qt4 das Hauptwidget? Wenn das setMainWidget() nicht mehr aktuell ist..
Verfasst: 9. März 2006 11:32
von Christian81
Spielgrips hat geschrieben:Oder mal eine andere Frage, wie setzt man den in Qt4 das Hauptwidget?
Nicht mehr nötig
http://doc.trolltech.com/4.1/porting4.html#qapplication