Seite 1 von 1

Installation von QT Creator unter Linux +altes QT

Verfasst: 30. Juli 2009 16:20
von F.Zimmer
Hallo,

mein Problem ist wahrscheinlich für Kenner lächerlich, aber ich knabbere
jetzt schon recht lange daran. Ich habe ein Problem mit der Installation
des Qt Creators auf einem Linux (KDE) System.
(bitte nicht sofort auslachen. :oops: )

Ich habe auf einem Entwicklungsrechner schon eine spezielle QT Version (4.2.2)
um Programme für ein Embedded System zu kompilieren.
(Jedenfalls gehe ich davon aus, dass es speziell ist *g* kann auch sein dass es nur das Qt Embedded ist)

Bisher habe ich den Qt Creator unter Windows verwendet, die Dateien
auf den Entwicklungsrechner gezogen und mit der alten QT Version kompiliert. (ging recht gut)

Nun habe ich allerdings das Problem dass ich auf die Serielle Schnittstelle
des Targets zugreifen muss. Wie ich hier im Forum schon gelesen habe
ist hierfür QextserialPort am besten geeignet. Da ich dies dann aber
sowohl unter Windows als auch unter Linux implementieren muss habe
ich mich dazu entschlossen den QT Creator auf dem Entwicklungsrechner
zu installieren.

Nun habe ich Probleme dass ich zwei QT Versionen auf einem Rechner
habe. Ich weis grundsätzlich sollte das kein Problem sein. Aber bei mir
klappts irgendwie nicht.

Fehlermeldung:
Cannot find -lfreetype

Weis nicht ob ich einfach alle Libraries neu installieren muss, oder ob und
wie ich die Pfade des Creators ändern kann damit es auf die
alten Qt Bibliotheken zugreift. :?:

Vielen Dank für die Antworten im Voraus!

Verfasst: 30. Juli 2009 16:23
von Mani99
Dir fehlen einige abhängigkeiten.

Welche distribution verwendest du?

Verfasst: 30. Juli 2009 16:29
von F.Zimmer
wow das ging schnell.

ich arbeite mit Kubuntu 8.04

Verfasst: 30. Juli 2009 16:31
von Mani99
Ok, dann

Code: Alles auswählen

sudo apt-get update && sudo apt-get install libfreetype6 && sudo apt-get install libglib2.0-0
Da werden noch mehr abhängigkeiten fehlen, vermute ich!

//EDIT:

Du kannst es dir ganz einfach machen indem du einfach folgendes installierst:

Code: Alles auswählen

sudo apt-get update && sudo apt-get install libqt4-dev
Das müsste alle abhängigkeiten auflösen.

Verfasst: 30. Juli 2009 16:43
von F.Zimmer
Hi, danke erstmal für die schnelle Hilfe,

bin jetzt nur am Problem, dass der Entwicklungs-PC nicht am Internet hängt (auch ich ihn auch net so schnell dran bekomm)

lade die Dateien von:
http://packages.ubuntu.com/hardy/i386/l ... 6/download

und
http://packages.ubuntu.com/hardy/all/li ... a/download

herunter, speicher sie aufm andern pc und versuch sie von dort auszuführen.

Meld mich wenns geklappt hat oder ich gescheitert bin

Verfasst: 30. Juli 2009 16:46
von Mani99
Linux ohne internet könnte eine ziemlich langweilige angelegenheit werden, aber ok...

Dir werden mit sicherheit noch mehr abhängigkeiten fehlen, also wird es besser sein, wenn du dir einen internet anschluss organisierst!

Verfasst: 30. Juli 2009 16:56
von F.Zimmer
Ja das habe ich auch schon gemerkt :D
Ohne Internet ist das ganze immer ein rießen gefummel. Aber ich habe leider keine andere Wahl. Ich komme mit dem PC erst heute abend wenn ich zu Hause bin wieder ins Internet.

Zu den Abhängigkeiten, woran erkenne ich genau welche Dateien ich hinzufügen muss (Google? *g*), und bekomme ich dann wirklich keine Probleme mit der alten QT Version?

PS installier grad die libqt4-dev. ---grr is schwer ohne Internet---

Verfasst: 30. Juli 2009 20:10
von F.Zimmer
HI,
habe jetzt von Zuhause den Befehl:
sudo apt-get update && sudo apt-get install libqt4-dev

ausgeführt ging perfekt. QT läuft jetzt nun mach ich mich an die Implementation von QextserialPort :-)

Vielen Dank für die schnelle und gute Hilfe

Verfasst: 31. Juli 2009 08:33
von Mani99
Um abhängigkeiten herauszufinden, kannst du auf die paketübersicht von ubuntu gehen.

Hier als beispiel libqt4-dev, da siehst du dann welche pakete benötigt werden.

Verfasst: 3. August 2009 08:56
von F.Zimmer
Hi,
so mein Problem ist gelöst, daher mein letzer Kommentar hierzu:
Qt und QextSerialPort auf Kubuntu zu installieren ist sehr einfach, auch für QT Neulinge, wenn man weis wie! :P
Daher hier eine kurze Auflistung, wie es bei mir funktioniert. (Bin mir sicher es gibt einen professionelleren Weg aber dieser geht schnell und einfach!)


- Aktuelle Qt Linux Version laden und installieren:
http://www.qtsoftware.com/downloads

- Dann die nötigen Bibliotheken mit dem Befehl von Mani99 laden

Code: Alles auswählen

sudo apt-get update && sudo apt-get install libqt4-dev 
- Nun die Zip von QextSerialPort laden (bei mir die qextserialport-1.2win-alpha.zip)
http://sourceforge.net/projects/qextserialport/files/

- Die Zip Datei einpacken und alle Header und cpp Dateien (im Hauptordner) in den Ordner des Projekts hinzufügen.

- Da hier nur für Linux entwickelt werden soll können beide win_ Dateien gelöscht werden

- Nun die Verbleibenden Dateien in die Project Datei des QT Creators einfügen.

Code: Alles auswählen

# -------------------------------------------------
# Project created by QtCreator 2009-07-31T11:31:26
# -------------------------------------------------
TARGET = Myserial
TEMPLATE = app
SOURCES += main.cpp \
    myserial.cpp \
    qextserialport.cpp \
    posix_qextserialport.cpp \
    qextserialbase.cpp
HEADERS += myserial.h \
    qextserialport.h \
    posix_qextserialport.h \
    qextserialbase.h
FORMS += myserial.ui \
    myserial.ui
- Versucht man nun das Projekt zu übersetzen, so erhält man vermutlich einige Fehlermeldungen.

- Daher muss in der qextserialport.h das define _TTY_LINUX_ gesetzt werden

- Zudem müssen alle Windowsspezifischen include befehle gelöscht werden

- Z.B.

Code: Alles auswählen

#include <objbase.h> 
Dies sind Headerdateien für Windows und werden hier nicht gebraucht

- Bei mir gab es noch Probleme bei den defines, es wurden Fehler in Codesegmenten gezeigt, die laut define nicht übersetzt werden sollten. Daher habe ich alle defines die nicht erfüllt werden (z.B. _TTY_WIN_) gelöscht.

- Fertig.

- Als erstes Programm habe ich das Programm MySerial von quinte17 verwendet:

- http://mrunix.de/forums/showthread.php? ... dc&t=65237
Hoffe das diese Beschreibung anderen hilft schneller voranzukommen.



Gruß.
F.Zimmer

Verfasst: 3. August 2009 09:47
von Mani99
Wäre es nicht besser aus dem qextserialport zeugs eine lib zu machen und diese dann einzubinden?

Verfasst: 3. August 2009 10:18
von F.Zimmer
Mani99 hat geschrieben:Wäre es nicht besser aus dem qextserialport zeugs eine lib zu machen und diese dann einzubinden?
Dies wäre der bessere/sauberere Weg, den ich meinte. :D Allerdings weis ich persönlich nicht wie es genau geht, und finde es daher schwerer.

Wenn du oder jemand Anderes den Weg detailiert beschreiben kann, ist es sicher, auch für Andere, eine große Hilfe.
Ich für meinen Teil finde bin mit dem einbinden der Dateien im Projekt sehr zufrieden. Auch weil ich noch Crosscompilieren muss und die Probleme mit einer lib dabei nicht abschätzen kann.

Vielen Danker Mani für deine hervorragende Hilfe, ohne dich hätte ich es wohl nicht so schnell geschafft!

PS: jetzt hab ich doch nochmal meinen Senf dazu gegeben *g

Verfasst: 3. August 2009 10:31
von Mani99
Ich hab mir die sourcen gerade angesehen, und das qextserialport dings ist als schon als library angelegt.

Wechsle doch einfach per terminal in das verzeichnis von qextserialport und führe ein make aus, dann müsste die lib erstellt werden! In der pro datei ist für windows und linux schon unterschieden worden, also müsstest du nicht einmal etwas im source ändern!