Lazarus für Qt fit machen

Rund um die LCL und andere Komponenten
Antworten
KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Lazarus für Qt fit machen

Beitrag von KUser »

Hi,

ich muss Lazarus für die Programmierung mit Qt/Embedded fit bekommen. Ich habe Qt heruntergeladen und ordnungsgemäß installiert. Lazarus und FPC (2.2.0) war bereits installiert.
Ich habe die Anleitung http://wiki.lazarus.freepascal.org/inde ... _for_Linux nach und nach abgearbeitet.
Beim "Erstellen" von Lazarus umgestellt auf Qt erhielt ich einige Warnings/Notes, jedoch keinen Fehler (siehe Anhang).
Daraufhin habe ich ein Testprojekt erstellt. Im Prinzip eine leere GUI-Oberfläche ohne Buttons und anderen Schnickschnack (denke der Code ist hier nicht weiter nötig).
Beim Compilieren schmiss er mir:

deletemetoo.lpr(13,14) Error: Identifier not found "Application"
deletemetoo.lpr(13,25) Error: Illegal expression
deletemetoo.lpr(14,14) Error: Identifier not found "Application"
deletemetoo.lpr(14,25) Error: Illegal expression
deletemetoo.lpr(14,25) Fatal: Syntax error, ";" expected but "(" found

Ich habe "Forms" zu den "uses" hinzugefügt, da "Application" dort deklariert ist. Beim nächsten Compilieren habe ich eigentlich ganz eindeutige Fehler bekommen, was diesmal fehlschlug (siehe wiedermal den Anhang). Allerdings fällt mir keine Idee ein, wie ich was wo und wann linken soll.
Vielleicht kann mir heir jemand mit Rat und Ideen weiterhelfen?

Gruß,
Patrick
Dateianhänge
Compiler_log.txt
Ausgabe des Compilers
(2.21 MiB) 78-mal heruntergeladen
Build_log.txt
Ausgabe nach dem Erstellen von Lazarus
(22.22 KiB) 64-mal heruntergeladen

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Lazarus für Qt fit machen

Beitrag von monta »

Herzlich Willkommen im Forum.

Wo sind den deine eindeutigen Fehler?

Da steht zwar mal

Code: Alles auswählen

deletemetoo.lpr(16,1) Error: Error while linking
aber ansonsten ist es doch nicht dein Ernst, hier 2.2MByte Logdatei anzuhängen...bitte mal auf das wesentliche kürzen.

Hast du den Syntax-Error beseitigt? Error while linking ist nen recht weites Feld. Hast du die richtige qt-Version auf dem System? Schreibrechte usw?
Johannes

KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Re: Lazarus für Qt fit machen

Beitrag von KUser »

Undefined references finde ich hier eindeutig =) Die müssen ja sicherlich iwo entstehen...

Ja, die 2 Mb waren mein ernst, denn kaum jemand benutzt noch nen 56k Modem oder eine Festplatte mit wenigen Mb Speicher ;) Wollte den Kram eben nicht posten. Hab wahrscheinlich nicht mitbekommen, dass es so groß war^^

Qt-Version, Schreibrechte ist soweit alles im Lot.

Den Syntax-Error habe ich nicht beseitigt, da es sich hier um einen Folgefehler handelt. Sowie ich Forms als Unit mit aufnehme, verschwinden die Fehler in Kursivschrift und es treten die im Textfile beschriebenen auf. Hab das im vorherigen Post schlecht formuliert stelle ich grad fest :roll:
Auch wenns ne breites Feld is mit dem Link-Fehler: Mir fehlen Ideen und Ansätze...

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Lazarus für Qt fit machen

Beitrag von theo »

Keine Ahnung.
Sowas deutet aber draufhin, dass die gefundene Qt-Version (falls überhaupt gefunden) nicht zur ibqt4intf.so Version passt.

/usr/local/lib/libqt4intf.so: undefined reference to `QX11Info::depth() const'

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Lazarus für Qt fit machen

Beitrag von creed steiger »

Was für eine Distro benutzt du und welche Qt libs hast du installiert?

KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Re: Lazarus für Qt fit machen

Beitrag von KUser »

Ich arbeite mit Kubuntu Gutsy.

Von der Qt-Seite (Trolltech) habe ich mir zu Qt/Embedded die Sourcen geladen und nach Anleitung installiert (configure, make, make install).
Falls du da genaueres wissen magst, kann ich erst morgen wieder Auskunf geben.

Ich befürchte auch, dass die libqt4intf.so auch nicht ganz zu Embedded passt. Leider heißen zum einen die Dateien trotzdem so und zum anderen hab ich ne Seite gefunden gehabt, wo der Download zu Embedded keinen Inhalt hat... :(
siehe hier ---> http://users.telenet.be/Jan.Van.hijfte/ ... pcqt4.html

Gruß

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Lazarus für Qt fit machen

Beitrag von Targion »

-> Neueren FPC nutzen
-> Qt4-Pakete mittels Synaptic/Adept installieren
-> libqt4intf.so oder das entsprechende Paket (beim BuildService von openSUSE zu finden) installieren
Von der Trolltec/Nokia-Website brauchst du nichts.

KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Re: Lazarus für Qt fit machen

Beitrag von KUser »

Hab Qt4 mal installiert, aber leider ist es mir hier nicht möglich den XServer zu umgehen, so wie es mir mit Qt/Embedded gelungen ist. Beim BuildService habe ich nichts gefunden. Danke für den TIp.

KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Re: Lazarus für Qt fit machen

Beitrag von KUser »

Sachen gibts.... jetzt hab ich Qt/Embedded wieder aufgespielt, so wie vorher auch, und Lazarus(FPC) kompiliert ohne Fehlermeldungen :) Und so wie es aussieht ist soweit auch alles richtig gesetzt und konfiguriert.

Aber ein NAchspiel muss es ja geben: Mein Ziel ist es ja, den Xserver zu umgehen, so dass ich in der Konsole die Applikationen starten kann. Leider bekomme ich bei Programmstart eine cannot connect to xserver Mitteilung ausgegeben. Mal sehen, wie ich da weiter fortfahre.

Zum Spaß hab ich das ganze auch mal mit Eclipse und C++ zusammengeschustert, wo das auch schon prima funktioniert, aber es bleibt Aufgabe, es für Lazarus zu schaffen...

KUser
Beiträge: 11
Registriert: Mo 20. Okt 2008, 09:29

Re: Lazarus für Qt fit machen

Beitrag von KUser »

Moin zusammen!

Also, nachdem einiges hier und dort nicht mehr ging, habe ich frische den aktuellsten FPC (2.2.2) installt und mir Lazarus nochmals aus dem SVN ausgecheckt. Nach ein paar kleineren Komplikationen konnte ich Lazarus mit dem Makefile compilieren und dann auch starten. Auch bei dr Installation des Compilers gab es keine Probleme. Als ich Lazarus nun auf Qt umstellte und die IDE neu "erstellte" habe ich auch sofort erkannt, dass nun Qt verwendet wird. Allerdings hätte ich auch gern, dass der Compiler das Qt auch vernünftig nutzt. Habe mir dafür nochmals die Sources für Qt/Embedded geladen, dort ein Skript angepasst und es ausgeführt. Ohne Fehler und Warnungen wurde mir die "libqt4intf.so" erzeugt, die ich an die richtige Stelle kopierte (/usr/local/lib) und mit ldconfig registriete. Um auszuschließen, dass Lazarus mit dem Linken nicht klar kommt, habe ich die Kompilierung und Linkung auchmal per Hand durchgeführt. Beide Verfahren haben allerdings dasselbe Ergebnis:

Code: Alles auswählen

...
...
/usr/local/lib/libqt4intf.so: undefined reference to `QWidget::qwsEvent(QWSEvent*)'
/usr/local/lib/libqt4intf.so: undefined reference to `QPrintPreviewWidget::print()'
/usr/local/lib/libqt4intf.so: undefined reference to `QStyledItemDelegate::QStyledItemDelegate(QObject*)'
/usr/local/lib/libqt4intf.so: undefined reference to `QPrintPreviewWidget::setPortraitOrientation()'
/usr/local/lib/libqt4intf.so: undefined reference to `QPrintPreviewWidget::fitToWidth()'
/usr/local/lib/libqt4intf.so: undefined reference to `QMdiArea::tabPosition() const'
...
...
deletemetoo.lpr(16,1) Error: Error while linking
deletemetoo.lpr(16,1) Fatal: There were 1 errors compiling module, stopping
An der Stelle der "..." standen halt noch mehrere "undefined references". Ich hab dem Compiler nun schon alle möglichen Pfade mitgegeben und nix rührt sich... hat jemand noch eine Idee hier?

Gruß,
Patrick

Antworten