Hilfe! Frage an QT- und Linux Experten!
#1
Mir ist bekannt, daß dieses Forum eigentlich die falsche Adresse für derartige Fragen ist, aber ich habe keine Lust und Zeit jetzt in irgendwelchen QT- Linuxforen rumzusuchen und vielleicht weiß es ja jemand hier.

Ich habe folgendes Problem:

Es gibt ja die Möglichkeit mit QT in Linux Programme mit graphischer Oberfläche zu programmieren. Ich habe hier ein fertiges Programm, daß ich eingentlich nur unter Linux zum laufen bringen möchte. Ich habe aber keinen Schimmer wie das gehen soll. Wie muß ich das starten, mit dem Project-File (.pro) im Terminal?

Die Dateien kann ich alle im QT Designer öffnen, aber da läuft mir das ja nicht.

Es handelt sich dabei um folgendes Programm:
http://elektronik.kai-uwe-schmidt.de/pro...1.0.tar.gz

Ich habe Suse Linux 9.0 mit KDE installiert, die QT Version ist 3.2.24 oder so, auf jeden Fall neu genug für das Programm.

Wenn's keiner weiß, wäre es auch wurscht, aber es wäre halt schön wenn ich das irgendwie zum Laufen bringen würde.
Grüße,
Wayne

Weil immer wieder nachgefragt wird: Link zur Bändertauglichkeitsliste (Erfassung von Haltbarkeit und Altersstabilität von Tonbändern). Einträge dazu bitte im zugehörigen Thread posten.
Zitieren
#2
Hallo Wayne!

Den QT-Designer brauchst Du nicht.

- Stell' sicher, daß Du den gcc-Compiler, die C++-Erweiterung (g++), gnu make und die Entwicklerpakete zu Deiner QT-Version installiert hast (müßte qt-3.2.24-dev o.Ä. heißen).

- Speichere die obige Datei in einem temporären Verzeichnis (/home/wayne/tmp o.Ä,).

- Öffne ein Terminalfenster und wechsele in das besagte Verzeichnis

Code:
cd /home/wayne/tmp
- Entpacke die Datei mit

Code:
tar -xzf temperaturlogger-1.0.tar.gz
Danach solltest Du ein Unterverzeichnis temperaturlogger-1.0 haben.

- Wechsele in das Unterverzeichnis

Code:
cd temperaturlogger-1.0
- Rufe

Code:
make
auf.

Wenn alles klappt, läuft dann der Compiliervorgang an, und nach kurzer Zeit hast Du das fertige Programm.

Wenn das Makefile eine Install-Sektion hat, kannst Du es anschließend bequem per

Code:
sudo make install
installieren (Du mußt nach dem Aufruf Dein root-Password eingeben). Wenn das nicht klappt, mußt Du es von Hand nach /usr/bin oder /usr/local/bin kopieren (melde Dich dann am besten noch mal).

Gruß,
Timo

Edit: Ich sitze gerade an meinem Berufs-Laptop mit MS Windows XP und kann's nicht ausprobieren. Ich melde mich bei Bedarf nachher von daheim noch mal.
Zitieren
#3
Halt, stop, 'tschuldigung - ich hatte übersehen, daß in dem Paket ein Configure-Script enthalten ist!

Bis

Zitat:- Wechsele in das Unterverzeichnis

Code:
cd temperaturlogger-1.0
- Rufe
bleibt alles gleich. Aber bevor Du "make" ausführst, mußt Du

Code:
./configure
aufrufen. Wenn das ohne Fehlermeldung durchläuft, kannst Du wie oben beschrieben mit

Zitat:- Rufe

Code:
make
auf.
weitermachen.

Ich hoffe, das war nicht zu verwirrend.
Zitieren
#4
Erstmal herzlichen Dank, Timo.

Ich bin mir eigentlich bei allem, außer bei g++, sicher daß es installiert ist.

Ich hab' jetzt mal alles so gemacht, ab make bekomme ich aber einen Haufen Fehlermeldungen:

Zitat:Boerni@Notebook:~> cd tempfuehl
Boerni@Notebook:~/tempfuehl> cd temperaturlogger-1.0
Boerni@Notebook:~/tempfuehl/temperaturlogger-1.0> ./configure
Running qmake in order to create Makefile ...
Boerni@Notebook:~/tempfuehl/temperaturlogger-1.0> make
g++ -c -pipe -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -fPIC -Wall -W -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -fPIC -DQT_NO_DEBUG -I/usr/lib/qt3/mkspecs/default -I. -I. -I/usr/include -I/include -o main.o main.cpp
main.cpp:18:26: qapplication.h: Datei oder Verzeichnis nicht gefunden
In file included from main.cpp:20:
tlwindow.h:21:25: qmainwindow.h: Datei oder Verzeichnis nicht gefunden
tlwindow.h:22:22: qpopmenu.h: Datei oder Verzeichnis nicht gefunden
In file included from tlwindow.h:24,
from main.cpp:20:
tlwidget.h:21:21: qwidget.h: Datei oder Verzeichnis nicht gefunden
tlwidget.h:22:20: qtable.h: Datei oder Verzeichnis nicht gefunden
tlwidget.h:23:20: qtimer.h: Datei oder Verzeichnis nicht gefunden
tlwidget.h:24:23: qdatetime.h: Datei oder Verzeichnis nicht gefunden
In file included from tlwidget.h:27,
from tlwindow.h:24,
from main.cpp:20:
tltempshow.h:21:21: qdialog.h: Datei oder Verzeichnis nicht gefunden
tltempshow.h:22:20: qlabel.h: Datei oder Verzeichnis nicht gefunden
tltempshow.h:23:25: qpushbutton.h: Datei oder Verzeichnis nicht gefunden
tltempshow.h:24:20: qtimer.h: Datei oder Verzeichnis nicht gefunden
In file included from tlwidget.h:27,
from tlwindow.h:24,
from main.cpp:20:
tltempshow.h:27: error: parse error before `{' token
tltempshow.h:32: error: destructors must be member functions
tltempshow.h:34: error: `QShowEvent' was not declared in this scope
tltempshow.h:34: error: `e' was not declared in this scope
tltempshow.h:34: error: variable or field `showEvent' declared void
tltempshow.h:35: error: `QHideEvent' was not declared in this scope
tltempshow.h:35: error: `e' was not declared in this scope
tltempshow.h:35: error: variable or field `hideEvent' declared void
tltempshow.h:37: error: parse error before `private'
tltempshow.h:41: error: parse error before `private'
tltempshow.h:43: error: Syntaxfehler before `*' token
tltempshow.h:44: error: Syntaxfehler before `*' token
In file included from tlwindow.h:24,
from main.cpp:20:
tlwidget.h:30: error: parse error before `{' token
tlwidget.h:35: error: destructors must be member functions
tlwidget.h:37: error: parse error before `public'
tlwidget.h:46: error: parse error before `private'
tlwidget.h:48: error: Syntaxfehler before `*' token
tlwidget.h:52: error: 'QDate' is used as a type, but is not defined as a type.
tlwidget.h:53: error: 'QTime' is used as a type, but is not defined as a type.
tlwidget.h:54: error: Syntaxfehler before `*' token
In file included from main.cpp:20:
tlwindow.h:27: error: parse error before `{' token
tlwindow.h:32: error: destructors must be member functions
tlwindow.h:34: error: `QCloseEvent' was not declared in this scope
tlwindow.h:34: error: `e' was not declared in this scope
tlwindow.h:34: error: variable or field `closeEvent' declared void
tlwindow.h:36: error: parse error before `public'
tlwindow.h:41: error: Syntaxfehler before `*' token
tlwindow.h:42: error: Syntaxfehler before `*' token
main.cpp: In function `int main(int, char**)':
main.cpp:24: error: `QApplication' undeclared (first use this function)
main.cpp:24: error: (Each undeclared identifier is reported only once for each function it appears in.)
main.cpp:24: error: `app' undeclared (first use this function)
main.cpp:24: error: parse error before `(' token
main.cpp:25: error: `win' undeclared (first use this function)
main.cpp:25: error: parse error before `(' token
main.cpp:23: Warnung: unused parameter `int argc'
main.cpp:23: Warnung: unused parameter `char**argv'
make: *** [main.o] Fehler 1
Boerni@Notebook:~/tempfuehl/temperaturlogger-1.0>
Liegt das vielleicht daran, daß doch nicht alles notwendige installiert ist? Oder hab ich was falsch gemacht?

Nochmal besten Dank für deine Hilfe bisher!
Grüße,
Wayne

Weil immer wieder nachgefragt wird: Link zur Bändertauglichkeitsliste (Erfassung von Haltbarkeit und Altersstabilität von Tonbändern). Einträge dazu bitte im zugehörigen Thread posten.
Zitieren
#5
Zitat:The_Wayne postete
Ich bin mir eigentlich bei allem, außer bei g++, sicher daß es installiert ist.
q++ ist drauf, der wird ja aufgerufen.

Diese Zeile...

Zitat:main.cpp:18:26: qapplication.h: Datei oder Verzeichnis nicht gefunden
... sieht für mich aber so aus, als werde qt-Entwicklerpaket von qmake nicht richtig erkannt, möglicherweise aufgrund einer nicht oder nicht richtig gesetzten Systemvariable QTDIR.

Mach' mal folgendes: Such' mal unterhalb von /usr nach der Datei qapplication.h (find /usr -name qapplication.h). Wenn sie gefunden wird, ergänzt Du den Pfad im Makefile. Klingt kompliziert, ist es aber nicht.

Mach' das Makefile mit einem Texteditor auf (z.B. kedit Makefile). Dort müßte irgendwo eine Zeile in der Art von

Code:
INCPATH  = -I/usr/share/qt4/mkspecs/default -I. -I. -I/usr/share/qt4/include
... stehen. Wenn der Pfad, unter dem die qapplication.h gefunden wurde, noch nicht in dieser Zeile auftaucht, mußt Du ihn in einer -I[Pfad]-Anweisung ergänzen.

Angenommen, die obige find-Anweisung liefert zurück:

/usr/include/qt4/Qt/qapplication.h

dann mußt Du die Zeile wie folgt ergänzen:

Code:
INCPATH  = -I/usr/share/qt4/mkspecs/default -I. -I. -I/usr/share/qt4/include -I/usr/share/qt4/include/Qt -I/usr/include/qt4/Qt
Datei speichern, noch mal Make aufrufen. Könnte dann schon klappen, denn alle folgenden Fehler beziehen sich entweder auch auf fehlende Headerdateien (die im gleichen Verzeichnis liegen dürften) oder sind Folgefehler.

Ein Problem könnte noch die Headerdatei qpopmenu.h sein, weil die in der aktuellen Version von qt m.W. nicht mehr existert. Das kannst Du aber durch die Installation der Kompatibilitätspakete für qt2 (qt-compat o.Ä.) ausbügeln.

Zitat:Nochmal besten Dank für deine Hilfe bisher!
Keine Ursache. Viel Erfolg!
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste