Home / LinuxUser / 2004 / 08 / Linux-Programmierung mit Kylix, Teil 5: Standarddialoge und Verteilung

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Standard-Dialog

Linux-Programmierung mit Kylix, Teil 5: Standarddialoge und Verteilung

Depoyment

Das Verteilen und Installieren von Applikationen auf fremden Rechner ist immer eine Herausforderung. Im einfachsten Fall ist auf dem Zielrechner ebenfalls Kylix installiert. Sie können dann entweder den Quelltext samt aller notwendigen Dateien im Projektordner weitergeben und auf dem Zielrechner das Projekt innerhalb der Kylix-IDE kompilieren und ausführen.

Eine ähnliche Vorgehensweise ist unter Linux mit C/C++-Projekten üblich. Der Anwender übersetzt den Quelltext mit dem Dreischritt ./configure && make && make install. Es ist aber eher unwahrscheinlich, dass Kylix auf dem Zielsystem vorhanden ist. Sie müssen die Applikation also selbst kompilieren und das Ergebnis weitergeben.

Eine Kylix-Applikation benötigt allerdings eine ganze Reihen an Bibliotheken und gemeinsamen Objekten. Je komplexer Ihre Kylix-Applikation ist, desto mehr Dateien braucht sie auf der Zielplattform. Bei einfachen Programmen wie dem Mini-Editor ist das noch überschaubar, Sie müssen die Dateien aber mit Ihrer Applikation ausliefern.

Grafische Applikationen benötigen auf jeden Fall die Bibliothek libqtintf-6.5-qt2.3, zusätzlich oft libqt2.3 (mit Kylix installiert). Welche Bibliotheken Ihrem Programm fehlen, gibt es beim Start selbst aus. So führt ./Minieditor zu folgender Meldung:

libborqt-6.9-qt2.3.so: cannot open shared object file: Datei oder Verzeichnis nicht gefunden

Diese Bibliothek findet sich im Kylix-Installationsverzeichnis, auf dem Testrechner war das /usr/local/kylix3/bin/libborqt-6.9-qt2.3.so.

Pfad zu den Bibliotheken

Auf der Suche nach fehlenden Bibliotheken geht ein Linux-Programm die Verzeichnisse durch, die in der Umgebungsvariablen LD_LIBRARY_PATH spezifiziert sind. Danach sucht es eine Cache-Datei mit Namen /etc/ld.so.cache und dann in einer Liste, die in der Textdatei /etc/ld.so.conf steht. Wenn die Bibliothek bis dahin nicht lokalisiert wurde, durchsucht der dynamische Linker das /usr/lib-Verzeichnis.

Sie haben also drei Methoden zur Wahl, um dafür zu sorgen, dass Ihr Programm die benötigten Bibliotheken findet: * Die LD_LIBRARY_PATH-Umgebungsvariable setzen * Eintrag in /etc/ld.so.conf ergänzen * Bibliotheken in /usr/lib ablegen

Für den Mini-Editor ist LD_LIBRARY_PATH die beste Lösung. Sie gibt Ihnen die meiste Kontrolle darüber, wo sich Dateien befinden und braucht keine Root-Privilegien. Ein kleines Startup-Skript (Listing 4) kümmert sich um diese Aufgabe.

Dieses Skript erwartet die binäre Datei in einem bin-Verzeichnis und die zu ladenden Bibliotheken in einem lib-Directory. Ersetzen Sie das passende Installationsverzeichnis und den Namen der Anwendung und kopieren die benötigen Libryries in das lib-Verzeichnis. Um das Skript auszuführen, müssen Sie die Datei noch ausführbar machen: chmod a+x Skriptdatei. Sie können die Verzeichnisstruktur aus Start-Skript, bin und lib nun auf fremden Rechnern installieren und den Mini-Editor dort benutzen.

Listing 4

Startup-Skript

#!/bin/bash
# Hier befindet sich die Applikation:
app_install_dir=/hier/liegt/das/Verzeichnis
app_path=$app_install_dir/bin/Minieditor
app_ld_path=$app_install_dir/lib
# Zuerst nach LD_LIBRARY_PATH-Variable suchen
if [ -n "$LD_LIBRARY_PATH" ]; then
  # Gefunden: Weiteren Pfad anhängen
  LD_LIBRARY_PATH="$app_ld_path:$LD_LIBRARY_PATH"
else
  # Nicht gefunden: Neu erstellen
  export LD_LIBRARY_PATH="$app_ld_path"
fi
# Sicherstellen, dass etwas für die LANG-
# Umgebungsvariable eingetragen ist:
if [ -z "$LANG" ]; then
  # Setze LANG auf einen passenden Wert
  export LANG=C
fi
# Anwendung ausführen
$app_path $*

Der Autor

Ralph Steyer begann seine die Computerkarriere mit einem ZX81, den während des Mathematikstudiums ein Atari ST ablöste. Er arbeitet heute als Freelancer, Programmierer, EDV-Dozent und Fachautor. Zu erreichen ist er unter http://www.rjs.de.

Glossar

GUI

Das Graphical User Interface ist der sichtbare Teil eines Programms, mit dem der Benutzer per Maus und Tastatur Daten eingibt oder Texte liest.

Komponenten

Nach dem Baukastenprinzip fasst Kylix Oberflächenelemente, Dialoge und andere komplexe Gebilde zu Komponenten zusammen. Wie Bauklötzchen lassen sich Komponenten miteinander verbinden und als eine Einheit benutzen.

Form

Die Arbeitsfläche der Kylix-Oberfläche enthält unter anderem den Formulardesigner, mit dem Sie die Elemente der Oberfläche per Maus zusammensetzen können.

Exception

Trifft sie auf einen ungültigen internen Zustand, den sie nicht selbst behandelt kann, wirft eine Routine eine Exception. Der Code, von dem die Routine aufgerufen wurde, muss auf diese Exception geeignet reagieren. Exceptions können Fehler beim Leser einer Datei sein, etwa fehlende Rechte, oder eine Division durch Null.

Infos

[1] Kylix-Grundlagen, Installation und erste Schritte: LinuxUser 10/2002, S. 74 ff.

[2] Kylix-Projekte, Dateitypen, Objekte, Eigenschaften und Ereignisse: LinuxUser 01/2003, S. 78 ff.

[3] Object Pascal, Hauptprogramm und Units, Prozeuderen, Funktionen und Methoden: LinuxUser 04/2003, S. 72 ff.

[4] GUI-Programmierung aus dem Baukasten, Objektorientierung, Oberflächen-Komponenten: LinuxUser 11/2003, S. 83 ff.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...