QT-IDE-Installation abschließen

Für Fragen rund um die Ide und zum Debugger
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: QT-IDE-Installation abschließen

Beitrag von Targion »

wolf_z hat geschrieben:Stimmt, mit 'sudo apt-get update' hat er sich alles runtergeholt. Ich dachte allerdings immer, dass die Synaptic-Paketverwaltung dasselbe macht, zumal ich dort die Quellen eingegeben habe. Nun ja, wieder was gelernt.
Also das mit den Paketen ist ein Bug? Hmmmm, wenigstens liegt es dann nicht an mir, das ist ja auch schon mal was. ich würde ja gerne selbst danach suchen, allein um mir mal die Kompetenz dafür anzueignen. Aber dafür muss ich jetzt erst mal ausführlich im internet stöbern, wie man Lazarus debuggt. Aber das dauert noch.
Bekommt man eigentlich über Dein Repository immer den gleichen Snapshot wie aus dem aktuellen SVN-Trunc ( sudo svn co http://svn.freepascal.org/svn/lazarus/trunk/" onclick="window.open(this.href);return false; ./ )?
Nein, im Repository sind aktuelle Snapshots des Lazarus 0.9.28b RC (diese Quellen). Diese version wird bald zu Lazarus 0.9.28
Aktiv entwickelt wird Lazarus 0.9.29a im trunk. Ich kann für die Version aber auch ein Repositorium einrichten, wenn Bedarf besteht.

Kann jemand das Verhalten bei der Komponenteninstallation bestätigen? Ich weiß nicht, ob das wirklich ein Bug ist.

P.S: Die Paketverwaltung aktualisiert dein System durch die PPAs schon automatisch, allerdings wird nicht so häufig auf Updates geprüft. Hättest du ein wenig gewartet, wäre das Update schon gekommen.

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: QT-IDE-Installation abschließen

Beitrag von wolf_z »

Mir ist da noch eine Idee gekommen, wie man das quick and dirty vielleicht hinkriegt.

Unter Windows wird ja auch nichts anderes gemacht, als dass die alte Lazarus-Version, wenn alles geklappt hat, in lazarus.old.exe umbenannt wird.

Lazarus compiliert und linkt das Lazarus mit dem Package zusammen. Aber es startet nicht automatisch wieder neu. Startet man es dann von Hand, wird die alte Version benutzt. Das bedeutet doch, dass irgendwo die neu-compilierte Version existieren muss.

Jetzt habe ich unter Ubuntu überall gesucht, wo denn nach der Compilierung und dem Linken die neu-erstellte Lazarus-Version zu finden sein könnte. Ich hab auch die make-Dateien und make-conf-Datei analysiert, aber ich hab zu wenig Ahnung davon.

Ich bräuchte doch nur die neu compilierte Lazarus-Version mit meinem Package nach /usr/bin/lazarus-ide zu kopieren und alles ist gut? Wo finde ich jetzt die unter Linux?

Wolfgang

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: QT-IDE-Installation abschließen

Beitrag von monta »

Da es zum Thema passt und vielleuicht jemand keine Mailinglist mit liest, eine Nachricht von gestern:
Hi all,

As of lazarus svn r. 21913 default qt version is 4.5.XX.
No more USE_QT_XX defines, and also minimum bindings version is 1.72, since
the way we use _hook_hook is changed.

zeljko
Johannes

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: QT-IDE-Installation abschließen

Beitrag von Targion »

Jap, habe ich auf der Qt-Mailingliste mitverfolgt. Leider kommen die Patches nicht auch in Lazarus 0.9.28b

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: QT-IDE-Installation abschließen

Beitrag von wolf_z »

Uffffz, geschafft.

Mit einer Mischung aus Targions, Snapshot und SVN-Installation :mrgreen: Ich war am weitesten gekommen, indem ich die Version 9.29 Beta aus Targions Repository wie oben installiert habe. Das Problem war, dass sich Lazarus nicht mehr richtig kompilieren ließ, vor allem neue Packages wurden nicht aufgenommen. Ich vermute aber, dass vor allem eines richtig installiert wurde, nämlich die "libqt4intf.so".

Ich fasse nochmal zusammen (kann ich später hier nachschlagen :) :

I) QT4-Packete auf Ubuntu intallieren über Synaptic-Paketverwaltung und zwar am besten alles, was mit "libqt4..." oder "qt4..." beginnt.

II) libqt4intf installieren

Folgendes Verfahren ist von mir nicht durchgängig getestet: Auf folgende Webseite gehen: http://users.telenet.be/Jan.Van.hijfte/ ... pcqt4.html" onclick="window.open(this.href);return false;
Dort für "Linux X11 / Linux Qt-Embedded (V1.70)" die "X11 i386 Libray Binary" downloaden und daraus "libqt4intf.so" nach /usr/lib/ und/oder /usr/local/lib entpacken.

Alternative: Klappt bestimmt, ist nur etwas umständlich: Targions Version aus dem Repository komplett installieren. Dann ist "libqt4intf" auch richtig installiert. Danach FPC und Lazarus per Synaptic-Paketverwaltung komplett deinstallieren und entfernen!

Wichtig ist ab hier, dass Lazarus und FPC komplett deinstalliert und entfernt sind (mit Synaptic), dass aber 'libqt4intf.so' richtig installiert ist. Wie gesagt, ich weis nicht ob das erste Verfahren richtig ist. Vielleicht kann Targion nochmal sagen, worauf es dabei ankommt.

III) FPC als Snapshot installieren

Den Snapshot findet man auf: http://www.hu.freepascal.org/lazarus/" onclick="window.open(this.href);return false; . Dort die Datei "fpc-2.2.4-3.i386.deb.tar" (oder eine analoge) downloaden und zwar als "Datei", nicht als Archiv! Die Datei wird dann auf dem Desktop abgelegt. Dort ein Verzeichnis namens 'entpack' anlegen, die tar-Datei anklicken und aus dem Archivmanager per Drag&Drop in den Ordner 'entpack' entpacken. Dann installieren mit:
~ sudo dpkg -i /home/wolfz/Desktop/entpack/*.deb

Jetzt hat man eine sauber installierte FPC-Version, die auch aus jedem Ordner heraus gefunden wird, wenn man 'fpc' eingibt. Man teste die Version durch Eingabe von 'fpc' im Terminal. Es muss dann die Version 2.2.4 starten.

IV) Lazarus installieren

Zunächst eventuell vorhandene alte Lazarus-Konfiguration löschen. Kann man aber auch später nach Installation von Lazarus wiederholen. Z.B.
~ cd /home/wolfz/
~ sudo rm -rf ~/.lazarus

Man lege im lokalen Bereich ein Lazarus-Verzeichnis an, wenn nicht schon vorhanden, z.B. '/home/wolfz/Lazarus' und gehe in dieses Verzeichnis. Dort hole man sich die gewünschte Lazarus-Version mit svn herunter, z.b. den Trunc:
~ svn co http://svn.freepascal.org/svn/lazarus/trunk/" onclick="window.open(this.href);return false; ./
~ make clean all
~ startlazarus

Lazarus startet und meldet, dass es zwei Pfade nicht finden kann. Man gehe in Lazarus unter 'Einstellungen / file' und setze:
Compilerdateiname: /usr/local/bin/fpc <--------- Default-Einstellung
FPC-Quelltextverzeichnis: /usr/share/fpcsrc/$(FPCVer)/ <---------- Default-Einstellung
Verzeichnis für Testprojekte: /home/wolfz/Lazarus/probier/ <--------- weil im Defaultverz. '/tmp' wahrscheinlich keine lokalen Rechte existieren!

Jetzt die IDE komplett neu compilieren für gtk2 inklusive Beispiel (clean & build) und zwar aus Lazarus heraus. Das Compilieren müsste jetzt sauber durchlaufen.

Es müssten sich jetzt auch eigene Packages installieren lassen. Und natürlich Projekte sowohl für GTK2 als auch qt(beta).

Was jetzt noch fehlt zu dem Thread hier, ist, wie man sich FPC mit svn sauber installieren kann. Dazu habe ich im Internet nichts Brauchbares gefunden. Es gibt zwar dieses Handbuch hier: http://www.stack.nl/~marcov/buildfaq.pdf" onclick="window.open(this.href);return false;, aber das ist eher was für absolute Spezialisten. Für mich reicht das aber so erst mal. Wichtiger ist bestimmt eine aktuelle Lazarus-Version als eine aktuelle FPC-Version.

Nochmal Dank an alle für die konstruktive Unterstützung.

Wolfgang

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: QT-IDE-Installation abschließen

Beitrag von knight »

wolf_z hat geschrieben:Uffffz, geschafft.

Folgendes Verfahren ist von mir nicht durchgängig getestet: Auf folgende Webseite gehen: http://users.telenet.be/Jan.Van.hijfte/ ... pcqt4.html" onclick="window.open(this.href);return false;
Dort für "Linux X11 / Linux Qt-Embedded (V1.70)" die "X11 i386 Libray Binary" downloaden und daraus "libqt4intf.so" nach /usr/lib/ und/oder /usr/local/lib entpacken.

Alternative: Klappt bestimmt, ist nur etwas umständlich: Targions Version aus dem Repository komplett installieren. Dann ist "libqt4intf" auch richtig installiert. Wolfgang
Was ist an Targions Version umständlich? Einfacher und vor allem weniger fehlerbehaftet geht es doch eigentlich nicht.
wolf_z hat geschrieben: Lazarus startet und meldet, dass es zwei Pfade nicht finden kann. Man gehe in Lazarus unter 'Einstellungen / file' und setze:
Compilerdateiname: /usr/local/bin/fpc <--------- Default-Einstellung
FPC-Quelltextverzeichnis: /usr/share/fpcsrc/$(FPCVer)/ <---------- Default-Einstellung
Verzeichnis für Testprojekte: /home/wolfz/Lazarus/probier/ <--------- weil im Defaultverz. '/tmp' wahrscheinlich keine lokalen Rechte existieren!
Hast du beim Deinstallieren auch die Konfigurationsdateien unter /home/wolfz/.lazarus gelöscht?

knight

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: QT-IDE-Installation abschließen

Beitrag von wolf_z »

@knight: Ich hab nicht gesagt, dass Targions Version umständlich ist. Wäre schön, wenn es bei mir funktionieren würde. Dann wäre es wirklich einfacher. Aber ich installiere Targions Version jetzt nur noch wg. libqt4intf.so, deinstalliere dann alles und installiere dann FPC per Snapshot und Lazarus per SVN

Und Targion hat ja auch selbst festgestellt, dass sich bei ihm keine Pakete installieren lassen.

Übrigens, es gibt unter Windows zwei Versionen von libqt4intf.dll und von denen funktioniert nur die neue von 2009! Die Fehlermeldung ist übrigens ähnlich, wie wenn man auf Ubuntu libqt4intf.so installiert. Kann sein, dass die Quelle, die ich oben angegeben habe, nur die alte libqt4intf.so enthält. Falls man also Probleme mit der libqt4intf.so bekommt, unbedingt die von 2009 suchen. Kann also sein, dass ich unter Schritt II) von Targion die aktuelle Version bekomme und aus der angegebenen Quelle (1. Möglichkeit) die alte.

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: QT-IDE-Installation abschließen

Beitrag von Targion »

Es reicht bei meiner Version die Pakete libqt4intf5 und libqt4intf-dev zu installieren, um Lazarus mit Qt4 zu erstellen.
Die Pakate enthalten alle wichtigen Dateien, es ist nicht nötig, die libqt4intf.so manuell irgendwie zu verschieben, zumal das Paket die Lib auch richtig im System registriert und alle nötigen Qt4-Bibliotheken als Abhängigkeiten hat. (Das Paket wartet noch auf einen Sponsor, um offiziell in Ubuntu und Debian aufgenommen zu werden.)
Das Lazarus in meinem PPA ist übrigens die Version 0.9.27b, nicht die 0.9.29a, die du aus dem SVN hast. Vor kurzem wurde die Rückwärtskompatibiliät für Qt < 4.5.1 komplett aus Lazarus und der libqt4intf entfernt, kein Wunder also, dass du frickeln musstet. In dem PPA ist aktuell die Version 1.71 der Wrapper-Lib.
Mal sehen, ob die Paketinstallation in Lazarus 0.9.28b bald wieder funktioniert.
Ich habe übrigens vor kurzem ein Update der libqt4intf an den Buildserver gesendet, könntet ihr bitte eventuelle Probleme beim Update berichten?
Zuletzt geändert von Targion am So 4. Okt 2009, 22:03, insgesamt 1-mal geändert.

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: QT-IDE-Installation abschließen

Beitrag von _X_ »

Ich kann unter Debian Sid die LCL zwar mit QT4 kompilieren, aber wenn ich versuche ein Projekt mit QT zu kompilieren
Ergebnis :arrow:
/usr/bin/ld: warning: /tmp/link.res contains output sections; did you forget -T?
/media/disk1part7/program/lazarus/lcl/units/i386-linux/qt/qtwidgets.o: In function `TQTTABWIDGET__ATTACHEVENTS':
qtwidgets.pas:5796: undefined reference to `QTabWidget_hook_hook_tabCloseRequested'
/media/disk1part7/program/lazarus/lcl/units/i386-linux/qt/qtwidgets.o: In function `TQTTABWIDGET__SETTABSCLOSABLE':
qtwidgets.pas:5938: undefined reference to `QTabWidget_setTabsClosable'
/media/disk1part7/program/lazarus/lcl/units/i386-linux/qt/qtwsdialogs.o: In function `TQTWSFILEDIALOG__CREATEHANDLE':
qtwsdialogs.pp:326: undefined reference to `QFileDialog_setOption'
/media/disk1part7/program/lazarus/lcl/units/i386-linux/qt/qtwsdialogs.o: In function `TQTWSFILEDIALOG__SHOWMODAL':
qtwsdialogs.pp:399: undefined reference to `QFileDialog_setOption'
/media/disk1part7/program/lazarus/lcl/units/i386-linux/qt/qtwsdialogs.o: In function `TQTWSSELECTDIRECTORYDIALOG__CREATEHANDLE':
qtwsdialogs.pp:512: undefined reference to `QFileDialog_setOption'
project1.lpr(20,1) Error: Error while linking
project1.lpr(20,1) Fatal: There were 1 errors compiling module, stopping
mfg _X_

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: QT-IDE-Installation abschließen

Beitrag von wolf_z »

Hmm, wenn sich die IDE compilieren lässt, müsste eigentlich alles in Ordnung sein. Ist unter Compiler-Einstellungen auch qt(beta) eingestellt und sonst nichts? Wurden die eigenen Pakete vorher alle mit qt(beta) compiliert und sonst alles leer unter Compilereinstellungen?

Was sind denn das für komische Verzeichnisse? '/media/disk1part7/program/lazarus/lcl/units/...' startest Du Lazarus von einer CD oder sowas?

Was mir noch auffällt, ist, dass Dein Lazarus offensichtlich '/tmp' benutzt. Falls Dein Lazarus lokal installiert wurde, kann es /tmp eigentlich nicht benutzen.

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: QT-IDE-Installation abschließen

Beitrag von Targion »

Wie hast du die libqt4intf installiert? Mache mal ein

Code: Alles auswählen

locate libqt4intf.so
und poste die Ausgabe. Suche auf der externen Platte, auf der dein Lazarus offensichtlich ist, auch mal nach der libqt4intf.so
Die Ausgabe von locate MUSS so aussehen, andernfalls ist etwas falsch eingestellt:

Code: Alles auswählen

/usr/lib/libqt4intf.so
/usr/lib/libqt4intf.so.5
/usr/lib/libqt4intf.so.5.1.71
Außerdem darf die libqt4inf nirgendwo sonst sein.

-----------------------------------
Wichtig! Alle die die libqt4intf aus meinen Quellen haben, sollten folgende Zeile im Terminal ausführen, um die neueste Version zu bekommen:

Code: Alles auswählen

sudo apt-get update;sudo apt-get remove libqt4intf;sudo apt-get install libqt4intf5 libqt4intf-dev

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: QT-IDE-Installation abschließen

Beitrag von knight »

Targion hat geschrieben: Wichtig! Alle die die libqt4intf aus meinen Quellen haben, sollten folgende Zeile im Terminal ausführen, um die neueste Version zu bekommen:

Code: Alles auswählen

sudo apt-get update;sudo apt-get remove libqt4intf;sudo apt-get install libqt4intf5 libqt4intf-dev
Im Paketmanager bekomme ich nur die libqt4intf angezeigt, nicht aber die beiden anderen. Hat sich an den Quellen etwas geändert?

knight

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: QT-IDE-Installation abschließen

Beitrag von _X_ »

@wolf_z
wolf_z hat geschrieben:Was sind denn das für komische Verzeichnisse? '/media/disk1part7/program/lazarus/lcl/units/...' startest Du Lazarus von einer CD oder sowas?
Nein, von einer EXT3-Partition.
Ich habe 6 Linux Partitionen und noch 2 EXT3 Datenpartitionen.

@Targion
Targion hat geschrieben:

Code: Alles auswählen

locate libqt4intf.so
Die Ausgabe von locate MUSS so aussehen, andernfalls ist etwas falsch eingestellt:

Code: Alles auswählen

/usr/lib/libqt4intf.so
/usr/lib/libqt4intf.so.5
/usr/lib/libqt4intf.so.5.1.71
Außerdem darf die libqt4inf nirgendwo sonst sein.
Und so sieht es bei mir aus:

Code: Alles auswählen

$ locate libqt4intf.so
/usr/lib/libqt4intf.so
/usr/local/lib/libqt4intf.so
Ich habe alle QT4 Pakete aus dem Normalen Debian Sid Repo installiert, könnte aber jetzt nicht sagen, in welchem Paket die libqt4intf.so ist.

Vielleicht sollte ich noch sagen, das ich das neueste Lazarus aus dem SVN habe.

mfg _X_

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: QT-IDE-Installation abschließen

Beitrag von Targion »

Hast du die libqt4intf aus meinem Paket oder manuell installiert?
Wenn du mein Paket nutzt, mache mal ein Update.
Ansonsten:

Code: Alles auswählen

rm /usr/local/lib/libqt4intf.so
, die wird nicht benötigt.
Wenn du mein Paket benutzt, mache mal ein Update des Paketes. Suche mal in deinem Lazarus-Verzeichnis nach der libqt4intf.so, z.B. mittels kfind oder gnome-finder und lösche alle libqt4intf.so's die du findest. Die eine und einzige muss in /usr/lib liegen.
Dass du die SVN-Version benutzt ist schonmal ein guter Hinweis, probiere mal die Maßnahmen oben aus. Wenn das nichts bringt, hätte ich noch eine Idee. :wink:

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: QT-IDE-Installation abschließen

Beitrag von _X_ »

Code: Alles auswählen

rm /usr/local/lib/libqt4intf.so
Verhaue ich mir damit nicht apt?

Den Rest probier ich erst mal.

mfg _X_

Edit: In meinem Lazarus Verzeichnis ist keine einzige SO

Antworten