Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)
-
- 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)
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
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
-
- 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)
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.
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.
-
- 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)
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/
-
- 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)
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?
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?
-
- 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)
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.
-
- 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)
Die ibqt4intf.so musst du mitgeben die ist lazarus spezifisch.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 957
- Registriert: Mo 11. Sep 2006, 22:56
Re: Lazarus-Anwendung mit QT weitergeben (libqt4intf.so)
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)
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)
-
- 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)
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.
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.
-
- 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)
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.
-
- 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)
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/
-
- 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)
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.
-
- 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)
wenn sie im selben verzeichnis wie die anwendung liegt nicht ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- 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)
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:
Beispiel:
Code: Alles auswählen
#!/bin/sh
basepath=$(pwd)
LD_LIBRARY_PATH="$basepath" $basepath/meineanwendung
-
- 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)
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)
-
- 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)
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.