Teil4: erweiterte Lazarusinstallation - Linux

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

Teil4: erweiterte Lazarusinstallation - Linux

Beitrag von monta »

Kategorie: montas Tutorialserie zu Linux
Typ: Tutorialserie

Artikel Name: Teil4: erweiterte Lazarusinstallation - Linux
Autor: monta
Beschreibung: Luxus: WINE und GTK2


Wine
Crosscompilierte Programme in wine starten
Wie bereits im vorhergehenden Teil angesprochen, ist es zwar nach entsprechender Konfiguration über Start > Erstellen möglich, ein unter Windows lauffähiges Executabel zu erzeugen, allerdings kann dieses nicht ohne weiteres über Start auch ausgeführt werden.
Dieser Umsatnd erschwert das effektive erstellen von crosscompilierten Programmen jedoch sehr stark. Da es doch kleine Unterschiede zwischen den Widgetsets gibt und man das Programm zumindest mal kurz überfliegen sollte, ob alles, wie angedacht funktioniert, eh man es weitergibt.
Eine Abhilfe dabei schafft wine. Wine bietet die Möglichkeit, Windowsprogramme unter Linux auszuführen indem es wichtige Windowsschnittstellen unter Linux zur Verfügung stellt und entsprechende Aufrufe auf Linuxeigene umleitet.

Installation von WINE
Wine sollte wohl bei den meisten Linuxdistributionen in den Repositories vorhanden sein. Somit ist es in der Regel bequem über den Paketmanager (ob nun yast, yum, rpm, apt-get usw.) zu finden und es kann relativ Problemlos installiert werden.
Bezogen auf openSuse 10.3 empfiehlt es sich, unter Yast noch folgende Einstellung vor der Wineinstallation vorzunehmen:
  • Software >> Community Repositories aufrufen
  • dort das Wine-CVS-Repositorie aktivieren und Beenden
Bild
Anschließend werden die Paketdaten dieses Pepositories heruntergeladen und dem Softwarekatalog hinzugefügt. Damit kann man bei der Installation von wine die neuere Version auswählen, anstatt die ältere aus dem Hauptrepository zu nutzen
Nun kann man wie gewohnt über Yast >> Software Installieren oder löschen nach WINE suchen und dieses installieren.

Alernativ funktioniert das folgende natürlich auch mit der (älteren) Version des Hauptrepositories bzw. bei anderen halbwegs aktuellen Distributionen mit der zur Verfügung stehenden Version von WINE.

Programme in WINE ausführen
Nachdem WINE erfolgreich installiert wurde, muss nun Lazarus noch so konfiguriert werden, dass crosscompilierte Windowsprogramme automatisch in WINE gestartet werden.

Dazu öffnet man zunächst über Start > Startparameter den Dialog in welchem die entsprechenden Konfigurationen zum Ausführen der Anwednungen eingestellt werden können.
Bild
In diesem Dialog müssen zwei Einstellungen gesetzt werden:
  • Startprogram verwenden muss aktiviert werden
  • in der darunterliegenden Zeile muss folgender Startbefehl eingestellt sein: /usr/bin/wine $(TargetCmdLine)
Nun kann das Projekt auch über Start ausgeführt werden und das erstellte Windowsexecutabel kann unter Linux begutachtet werden.

Möchte man das Programm wieder für Linux erstellen, müssen folgende Änderungen wieder rückgängig gemacht werden:
  • Start > Startparameter...: Startprogramm verwenden muss deaktiviert werden
  • Projekt > Compilereinstellungen...: Reiter Pfade: LCL-Schnittstelle zurücksetzen
  • Projekt > Compilereinstellungen ...: Reiter Quelltext: Zielbetriebssystem auf Linux zurücksetzen

Eyecandy - GTK2
Unter Linux stehen dem Programmierer verschiedene LCL-Schnittstellen (Widgetsets) zur Verfügung. Währenddessen man unter Windows sich keinerlei Gedanken machen muss, welche Schnittstelle man verwenden will, da es nur eine Standardschnittstelle gibt, bietet Linux von Haus aus je nach Desktopoberfläche und System verschiedene Möglichkeiten an.
So basiert die Desktopumgebung KDE auf dem qt-Widgetset, währenddessen andere, wie Gnome und XFCE auf dem Gimp-Tool-Kit (GTK/GTK2) basieren.
Standardmäßig wird Lazarus mit GTK erstellt und alle erstellten Programme besitzen unter Linux ebenfalls eine GTK-Oberfläche.
Allerdings sieht GTK unter den aktuellen Desktopoberflächen wohl für die meisten Benutzer doch recht altertümlich aus. Hinzu kommt, das moderne Linuxdistributionen teilweise das GTK-Widgetset standardmäßig nicht mehr installieren, stattdessen wird nur GTK2 von Haus aus installiert.
Daher sollte man sich überlegen, ob man sein Programm nicht gleich der besseren Optik wegen mit GTK2 kompilieren will, anstatt GTK zu benutzen.
Um Programme für GTK2 zu erstellen muss zunächst über yast (oder eine andere Packetverwaltung) das Package gtk2-devel installiert werden.
Danach müssen die entsprechenden Teile von Lazarus neu erstellt werden. Dabei kann man fast genauso vorgehen, wie bei der Vorbereitung zur Erstellung von Crosscompilierten Programmen:
Man geht in Lazarus auf Werkzeug >> Lazarus erstellen einrichten...
und wählt im Erscheinenden Dialog den Reiter Erweiterte Build-Optionen in welchem man folgende Einstellungen vornimmt:
  • LCL, SynEdit, CodeTools, Package-Registrierung IDE-Schnittstellen müssen auf Clean and Build gesetzt werden
  • JIT-Form, IDE, Starter und Beispiele müssen hingegen auf none gesetzt sein
  • Bei LCL-Schnittstelle wählt man gtk2 aus
Anschließend kann man Lazarus, oder besser gesagt, die LCL und relevante Schnittstellen, neu erstellen.

Um nun nach diesen Vorbereitungen das eigene Programm für GTK2 zu erstellen, muss dies in den Projekteinstellungen angepasst werden:
Dazu ruft man über Projekt >> Compilereinstellungen... den entsprechenden Konfigurationsdialog auf.
  • im Reiter Pfade muss die Einstellung LCL-Schnittstelle auf GTK2 gesetzt werden
Anschließend sollte man beim nächsten Start des Projektes anstatt des GTK ein GTK2-Design der eigenen Anwendnung sehen.

Der Vollständigkeit wegen muss noch folgendes gesagt werden. GTK ist das am besten entwickelte Widgetset von Lazarus unter Linux, folglich ist dies auch in den meisten Fällen das fehlerfreiste. Dennoch sollten viele Anwendungen auch Problemlos auf GTK2 laufen. So ist es auch möglich, die Lazarus-IDE mit GTK2 neu zu kompilieren. Auch eine Neukompilierung für QT ist möglich, jedoch ist QT teilweise noch recht fehleranfällig, wobei sich gerade da in letzter zeit sehr viel getan hat. So ist es natürlich jedem freigestellt, QT zu verwenden, bzw. zu testen. Für die nötigen Grundlagen sei dabei auf das Wiki von Lazarus verwiesen.
Um die IDE für GTK2 zu erstellen, setzt men einfach im Lazarus neu erstellen-Dialog alles auf Build und wählt als LCL-Schnittstelle GTK2. Anschließend sollte sich Lazarus nach erfolgreicher Kompilierung automatisch mit der optisch ansprechenderen GTK2-Oberfläche starten. Allerdings sei nochmal darauf hingewiesen, das in dieser teilweise Ungereimtheiten auftreten können, welche in GTK nicht vorhanden sind. Sollte man wieder auf GTK wechseln wollen, kann man die IDE ebenso wieder für GTK neu erstellen.

Antworten