Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Giantics »

1. Wenn ich meine Lazarus-Anwendung mit QT-Interface weitergeben möchte, wie stellt man das am besten an.
Die Datei libqt4intf.co einfach mit in das deb/rpm Paket stecken und auf dem Zielsystem in /usr/local/lib/ entpacken?
Oder lieber in das Verzeichnis in dem auch die Binary liegt?

Darf man diese lib-Datei überhaupt weitergeben?

2. Wieso sieht meine QT-Anwendung so anders aus als KTorrent (siehe Screenshots).
Anscheinend verwenden beide QT4.

Gruß
Giantics
Dateianhänge
KTorrent
KTorrent
Lazarus-Anwendung
Lazarus-Anwendung
qtgui1.png (9.87 KiB) 2686 mal betrachtet

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von bembulak »

Deine Anwendung verwendet sicher nicht QT4. Das sieht man aber.
Oder aber Lazarus-QT übernimmt den eingestellten Theme nicht. Das würde mich aber wundern.

Ich würde diese "ibqt4intf.so" als Abhängigkeit angeben beim Paketbauen. Fertig.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Christian »

Du darfst QT Anwendungen nur unter GPL weitergeben also incl. komplettem Source. Ansonsten musst du eine Entwicklerlizenz vom QT kaufen und die ist nicht gerade billig.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Giantics »

Ich bin mir allerdings zu 100% sicher, dass dieses Projekt mit QT kompiliert wurde.

Wenn ich die libqt4intf.so entferne, dann kommt folgende Meldung:
/project1_QT: error while loading shared libraries: libqt4intf.so: cannot open shared object file: No such file or directory

Desweiteren sieht es mit GTK2 kompiliert anders aus (siehe Screenshot).

Ich verwende übrigens noch KDE3 (mit Debian Lenny), wahrscheinlich fehlen einfach nur irgenwelche Themes oder Ähnliches.
Seltsam ist wirklich nur, dass KTorrent aussieht wie eine typische KDE4 Anwendung.

Die libqt4intf.so als Anhängigkeit anzugeben funktioniert doch nur, wenn es ein Paket gäbe, dass diese Datei enthält, oder?
Zumindest unter Debian/Ubuntu ist mir kein solches Paket bekannt.
Und bevor ich für diese Datei extra eins erstelle, kann ichs doch gleich mit ins andere Paket übernehmen?
Dateianhänge
Lazarus-Anwendung mit GTK2
Lazarus-Anwendung mit GTK2

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Hitman »

Bedenke, dass KDE Anwendungen meistens nochmal eine Abstraktionsschicht verwenden - die bauen nicht direkt auf QT auf. Möglicherweise könnte gerade dort die Wahl der Themes reinfallen.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Christian »

Die ibqt4intf.so musst du mitgeben die ist lazarus spezifisch.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von creed steiger »

Tipp:Mit ldd siehst du
welche Abhängigkeiten dein Programm hat.

Die Themeeinstellung von KDE4 und reinem Qt4 unterscheiden sich
(mit /usr/bin/qtconfig kannst du das Qt Theme einstellen)

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Giantics »

Danke euch.
Demnach kommt die libqt4intf.so wohl direkt in das deb- bzw rpm-Paket.
Was passiert dann, wenn ein anderes Paket ebenfalls diese Datei installieren oder entfernen will?

Die Theme-Einstellung für KDE4 hab ich jetzt gefunden.

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-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Targion »

Dann crasht die Installation. Überschreiben von Dateien geht nicht. Ergo muss die libqt4intf.so in ein Extra-paket. Ich habe mich auch schon mit dem Problem auseinandergesetzt und werde ein passendes Paket bald in den openSUSE Build Service einfügen. Du kannst dann dieses Paket als Abhängigkeit angeben, oder aber dein eigenes erstellen.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Christian »

Die intf ist eine lazarusspezifische schnittstelle die kann man problemlos im eigenen installationsverzeichnis liegen lassen unddann crasht garantiert nix
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Giantics
Beiträge: 88
Registriert: Sa 3. Mär 2007, 13:46
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Langenbrettach

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Giantics »

Targion hat geschrieben:Dann crasht die Installation. Überschreiben von Dateien geht nicht. Ergo muss die libqt4intf.so in ein Extra-paket. Ich habe mich auch schon mit dem Problem auseinandergesetzt und werde ein passendes Paket bald in den openSUSE Build Service einfügen. Du kannst dann dieses Paket als Abhängigkeit angeben, oder aber dein eigenes erstellen.


Ich denke auch, dass das die beste Lösung sein wird.

Christian hat geschrieben:Die intf ist eine lazarusspezifische schnittstelle die kann man problemlos im eigenen installationsverzeichnis liegen lassen unddann crasht garantiert nix


Bei mir wird die Datei nur gefunden, wenn sie in "/usr/local/lib/" liegt.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Christian »

wenn sie im selben verzeichnis wie die anwendung liegt nicht ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Hitman »

Linux ist nicht Windows! LD sucht in den in /etc/ld.so.conf angegebenen Pfaden ... da gehört das eigene Anwendungsverzeichnis normalerweise nicht dazu. Einzige Möglichkeit wäre, die Anwendung per Script zu starten und das zu korrigieren. (oder die Library dynamisch zur Runtime zu laden, was wohl in dem Fall ein riesiger Aufwand wäre).

Beispiel:

Code: Alles auswählen

#!/bin/sh
basepath=$(pwd)
LD_LIBRARY_PATH="$basepath" $basepath/meineanwendung

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von marcov »

Hitman hat geschrieben:Linux ist nicht Windows! LD sucht in den in /etc/ld.so.conf angegebenen Pfaden ...


(um Environment variable LD_LIBRARY_PATH erweitert glaube ich. Damit kann mann lokal die globale ld.so.conf overriden)

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)

Beitrag von Hitman »

marcov hat geschrieben:
Hitman hat geschrieben:Linux ist nicht Windows! LD sucht in den in /etc/ld.so.conf angegebenen Pfaden ...


(um Environment variable LD_LIBRARY_PATH erweitert glaube ich. Damit kann mann lokal die globale ld.so.conf overriden)


Ja, darum dann mein Code Beispiel eines solchen Skriptes. :)

Antworten