View previous topic :: View next topic |
Author |
Message |
markusk21 Apprentice


Joined: 07 Oct 2004 Posts: 216 Location: Hannover
|
Posted: Mon Aug 07, 2006 4:49 pm Post subject: [gelöst] Kdevelop und QT |
|
|
Ich krieg's nicht hin!!!!
Ich habe schon einiges experimentiert (Erste Versuche).
Ich versuche eine QT-Anwendung zu kompilieren. Aber es fehlen offenbar immer einige Bibliotheken.
Ich habe mein Projekt erstellt nach folgender Anleitung: http://women.kde.org/articles/tutorials/kdevelop3/index.html.
Ich hoffe ich habe keine Tippfehler übersehen, jedenfalls bekomme ich nach automake und Konsorten und ./configure beim erstellen folgende Meldungen: Quote: | cd '/home/markus/programming/sigcreate/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake
gmake all-recursive
Making all in doc
Making all in .
gmake[3]: Für das Ziel »all-am« ist nichts zu tun.
Making all in en
gmake[3]: Für das Ziel »all« ist nichts zu tun.
Making all in po
gmake[2]: Für das Ziel »all« ist nichts zu tun.
Making all in src
if g++ -DHAVE_CONFIG_H -I. -I/home/markus/programming/sigcreate/src -I.. -I/usr/kde/3.5/include -I/usr/qt/3/include -I. -DQT_THREAD_SUPPORT -I/usr/qt/3/include -L/usr/qt/3/lib -lqt -D_REENTRANT -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -g3 -fno-inline -O0 -g3 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -MT sigcreate.o -MD -MP -MF ".deps/sigcreate.Tpo" -c -o sigcreate.o /home/markus/programming/sigcreate/src/sigcreate.cpp; then mv -f ".deps/sigcreate.Tpo" ".deps/sigcreate.Po"; else rm -f ".deps/sigcreate.Tpo"; exit 1; fi
/home/markus/programming/sigcreate/src/sigcreate.cpp: In member function `virtual void SigCreate::slotErstellenSignatur()':
/home/markus/programming/sigcreate/src/sigcreate.cpp:36: Fehler: invalid use of undefined type `struct QTextEdit'
./sigcreatedlg.h:24: Fehler: forward declaration of `struct QTextEdit'
/home/markus/programming/sigcreate/src/sigcreate.cpp:37: Fehler: invalid use of undefined type `struct QTextEdit'
./sigcreatedlg.h:24: Fehler: forward declaration of `struct QTextEdit'
/home/markus/programming/sigcreate/src/sigcreate.cpp:37: Fehler: invalid use of undefined type `struct QLineEdit'
./sigcreatedlg.h:22: Fehler: forward declaration of `struct QLineEdit'
/home/markus/programming/sigcreate/src/sigcreate.cpp:38: Fehler: invalid use of undefined type `struct QTextEdit'
./sigcreatedlg.h:24: Fehler: forward declaration of `struct QTextEdit'
/home/markus/programming/sigcreate/src/sigcreate.cpp:38: Fehler: invalid use of undefined type `struct QLineEdit'
./sigcreatedlg.h:22: Fehler: forward declaration of `struct QLineEdit'
/home/markus/programming/sigcreate/src/sigcreate.cpp:39: Fehler: invalid use of undefined type `struct QTextEdit'
./sigcreatedlg.h:24: Fehler: forward declaration of `struct QTextEdit'
/home/markus/programming/sigcreate/src/sigcreate.cpp:39: Fehler: invalid use of undefined type `struct QComboBox'
./sigcreatedlg.h:23: Fehler: forward declaration of `struct QComboBox'
gmake[2]: *** [sigcreate.o] Fehler 1
gmake[1]: *** [all-recursive] Fehler 1
gmake: *** [all] Fehler 2
*** Beendet mit Status: 2 ***
|
Wie im oben genannten Thread berichtet habe ich in /etc/profile folgende Einträge: Quote: | QTDIR="/usr/qt/3"
KDEDIR="/usr/kde/3.5"
LD_LIBRARY_PATH=$QTDIR/include:$KDEDIR:$LD_LIBRARY_PATH
PATH=$QTDIR/bin:$KDEDIR/bin:$PATH
|
Zusätzlich habe in in den KDevelop-Projekteinstellungen unter "Einstellungen für Configure" bei "Schalter für den C/C++ Präprozessor" folgenden Eintrag: Quote: | -I/usr/qt/3/include -L/usr/qt/3/lib -lqt |
Bei C++Besonderheiten habe ich die Benutzung von QT 3.x mit dem Qt-Installationsverzeichnis "/usr/qt/3" angekündigt.
Offensichtlich hat der Compiler (oder der Linker :ROOKIE:) die QApplication und anderen header gefunden, kennt aber QTextEdit
nicht. Ist das in der .ui-Datei eingebunden und deklariert oder woher weiss er das das ein strukt ist?????
Kann mir bitte jemand eine Webseite oder so empfehlen, sodass ich endlich mit meinen GUIs anfangen kann. Ich hab die Nase echt voll von Konsolen-Anwendungen.
Last edited by markusk21 on Tue Aug 08, 2006 10:26 pm; edited 1 time in total |
|
Back to top |
|
 |
markusk21 Apprentice


Joined: 07 Oct 2004 Posts: 216 Location: Hannover
|
Posted: Mon Aug 07, 2006 9:40 pm Post subject: |
|
|
Mal ganz doof gefragt, entwickelt jemand (kleine) QT-Programme mit KDevelop?
Welche Schritte werden gemacht. Im anderen Thread sagte jemand man braucht ein Make-File (sollte ja wohl eigentlich autoconf erstellen, nicht). Was muss da rein?
Sprich, wie bekommt man ein QT-Programm mit .ui-Datei (mit QT- bzw. Kdevelop-Designer erstellt) compiliert????
Ich habe meine Projektdatei mal gepackt und verlinkt. Vielleicht hat jemand Lust meinem Problem mit mir nachzugehen? Was muss ich ändern? In KDevelop oder läuft es so bei jemand?
Ach ja, ich habe auf einem Rechner KDevelop 3.3.2 auf dem anderen 3.3.3 laufen.
Gruß Markus |
|
Back to top |
|
 |
intmain Apprentice


Joined: 14 Dec 2005 Posts: 179 Location: Austria
|
Posted: Tue Aug 08, 2006 8:19 am Post subject: |
|
|
Quote: | Welche Schritte werden gemacht. Im anderen Thread sagte jemand man braucht ein Make-File (sollte ja wohl eigentlich autoconf erstellen, nicht). Was muss da rein? |
Wenn du eine "reine" Qt-Anwendung entwickeln möchtest, also ohne KDE-Komponenten, ist es unter Umständen besser, ein QMake-basierendes Projekt mit KDevelop zu erstellen, es sei denn, du möchtest aus bestimmten Gründen unbedingt autoconf/automake verwenden. QMake-Projekte sind meiner Meinung nach viel einfacher und transparenter und vereinfachen es auch, die Anwendung auf anderen Plattformen (MacOS X, Windows) zu kompilieren.
Quote: | Mal ganz doof gefragt, entwickelt jemand (kleine) QT-Programme mit KDevelop? |
Es ist zwar schon länger her, dass ich zum letzten mal KDevelop verwendet habe (3.1 soweit ich mich erinnere), habe damals aber (zumindest mit weniger umfangreichen QMake-basierenden Projekten) keine schlechten Erfahrungen gemacht.
Die Compilerfehler "invalid use of undefined type ..." kommen daher, dass der aus .ui-Dateien generierte Header-Files nur Forward-Deklaratioen für die verwendeten Klassen beinhalten.
Ich habe an deinem Code folgende Änderungen vorgenommen, um das Programm lauffähig zu machen:
Code: | // sigcreate.cpp
#include "sigcreate.h"
#include <qlineedit.h>
#include <qtextedit.h>
#include <qcombobox.h>
SigCreate::SigCreate(QWidget* parent, const char* name, WFlags fl)
: SigCreateDlg(parent,name,fl)
{
}
SigCreate::~SigCreate()
{
}
/*$SPECIALIZATION$*/
void SigCreate::slotErstellenSignatur()
{
SigFeld->append("\n--");
SigFeld->append(NameLine->text());
SigFeld->append(EmailLine->text());
SigFeld->append(KommBox->currentText());
}
|
Da ich keine KDE-Libraries installiert habe, habe ich außerdem noch folgendes verändert:
Code: | // main.cpp
#include "sigcreate.h"
#include <qapplication.h>
#include <qlineedit.h>
#include <qcombobox.h>
#include <qmultilineedit.h>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
SigCreate *mainWin = 0;
mainWin = new SigCreate();
app.setMainWidget( mainWin );
mainWin->show();
return app.exec();
}
|
Um die Anwendung ohne KDevelop zu kompilieren habe ich in sigcreate/src noch die Datei sigcreate.pro erstellt und qmake ausgeführt bzw. mit make compiliert.
Code: | # sigcreate.pro
TEMPLATE = app
SOURCES += main.cpp sigcreate.cpp
HEADERS += sigcreate.h
FORMS += sigcreatedlg.ui
|
Wenn du beim Erstellen eines neuen Projekts in KDevelop QMake-basierend wählst, wird die .pro Datei automatisch erstellt und verwaltet.
Zu deinem Problem in Erste Schritte:
Auch dieses Problem lässt sich mit qmake lösen, einfach eine Datei firstprog.pro mit folgendem Inhalt erstellen
Code: | TEMPLATE = app
SOURCES += firstprog.cpp |
und dann qmake und make ausführen.
Wenn du Qt3 und Qt4 installiert hast, musst du, wenn du Qt3 verwenden möchtest $QTDIR/bin/qmake statt nur qmake ausführen. |
|
Back to top |
|
 |
_hephaistos_ Advocate


Joined: 07 Apr 2004 Posts: 2694 Location: salzburg, austria
|
Posted: Tue Aug 08, 2006 8:50 am Post subject: |
|
|
1) fehlermeldung sieht danach aus, dass du "qtextedit.h" nicht included hast...
2) wenns immer noch nicht geht: pack mal dein projekt und stells irgendwo online
hab mit kdevelop keine probleme... qmake project halt...
EDIT: hab gerade gesehen, dass du es gepackt hast. werds mal probieren und hoffentlich fixen  _________________ -l: signature: command not found |
|
Back to top |
|
 |
_hephaistos_ Advocate


Joined: 07 Apr 2004 Posts: 2694 Location: salzburg, austria
|
Posted: Tue Aug 08, 2006 9:21 am Post subject: |
|
|
wie zu erwarten war:
füg:
Code: |
#include <qtextedit.h>
#include <qlineedit.h>
#include <qcombobox.h>
|
in sigcreate.cpp ein!
cheers _________________ -l: signature: command not found |
|
Back to top |
|
 |
markusk21 Apprentice


Joined: 07 Oct 2004 Posts: 216 Location: Hannover
|
Posted: Tue Aug 08, 2006 10:22 am Post subject: |
|
|
die 3 Include-DAteien haben es gebracht!!!
Da aber so viele das andere Make-empfehlen werde ich das mal ausgiebig testen.
Hey, vielen, vielen Dank für eure Hilfe!!!!!! |
|
Back to top |
|
 |
_hephaistos_ Advocate


Joined: 07 Apr 2004 Posts: 2694 Location: salzburg, austria
|
Posted: Tue Aug 08, 2006 10:26 am Post subject: |
|
|
kdevelop macht dir doch das genauso!
kdevelop arbeitet mit autoconf & automake -> flexibler und besser gehts fast nicht
es wär gescheiter mal zu verstehen, worums geht, bevor du irgendwas machst, was dir jemand sagt...
dh:
- unterschied qmake project und kde project. stichwort QApplication und KApplication usw.
- unterschied autoconf & automake zu qmake -> jo, qmake generiert dir auch "nur" ein Makefile...
@profis: ja, ist nicht _astrein_ ausgedrückt und die Vergleiche hinken auch leicht, aber ich denke man versteht, worums geht  _________________ -l: signature: command not found |
|
Back to top |
|
 |
markusk21 Apprentice


Joined: 07 Oct 2004 Posts: 216 Location: Hannover
|
Posted: Tue Aug 08, 2006 10:25 pm Post subject: |
|
|
Ich habe glaube ich mein Hauptproblem identifiziert!
Mir war gar nicht klar, dass ich 2 QT-Versionen installiert habe, ganz zu schweigen davon, dass ich alte Header etc einbinde.
Ich habe jetzt (hoffentlich vollständig) meine Versuche auf QT4 umgestellt. So funktioniert auch unter Kdevelop einiges mehr auf Anhieb .
Vielen Dank an alle und
LG. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|