| Andreas Rozek |
|
Distributionen für Win32-PlattformenNachdem weder eine Recherche im Internet noch eine Anfrage im Lua-Forum den erhofften Erfolg brachte, blieb dem Autor nichts anderes übrig, als die gewünschte TkLua-Distribution für Win32-Plattformen selbst zusammenzustellen. Die vorliegende Web-Seite beschreibt die Arbeiten des Autors im Hinblick auf Win32-Distributionen von Lua/LuaC 4.0, tolua, TkLua 4.0a1 und LuaSocket 1.4. Die genannten Distributionen sowie die für eine Übersetzung unter Microsoft Visual Studio 6.0 benötigten Projekt- und Resourcen-Dateien können außerdem von dieser Seite aus heruntergeladen werden. Die "Portierung" erwies sich im Nachhinein als äußerst einfach: die hier dokumentierten Arbeiten sind das Ergebnis von etwas mehr als zwei vollen Arbeitstagen (à 7.5 Stunden) - dies schließt die Installation von Microsoft Visual Studio sowie die Einarbeitung in dieses System (mithilfe der beiliegenden Hilfe-Dateien) mit ein!
Bitte beachten Sie auch die Betrachtungshinweise und die Liste der letzten Änderungen! ThemenübersichtDie folgende Themenübersicht führt Sie unmittelbar zu der von Ihnen gewünschten Information - klicken Sie dazu einfach auf das Thema Ihrer Wahl:
LuaDie "Portierung" des Lua-Laufzeitsystems beruht auf den Original-Quelltexten [1] (inklusive der unter [10] veröffentlichten Fehlerbereinigungen), der "offiziellen" Win32-Portierung [2] sowie Projekt- und Resourcen-Dateien aus einer "inoffiziellen" Portierung [3]. Für die hier vorgestellte Win32-Distribution waren keinerlei Änderungen am Quelltext erforderlich, stattdessen mußten Projekt-Dateien für Visual Studio 6.0 sowie "def"-Dateien für die Einsprünge der zu erzeugenden Bibliotheken (DLLs) erstellt werden. Der "inoffiziellen Portierung" [3] wurde außerdem das Lua-Symbol (Lua.icon) entnommen. Das Ergebnis der Bemühungen sind zwei Bibliotheken (LuaCore.dll und LuaLib.dll) sowie ein von der Kommandozeile aus startbares Programm (Lua.exe), mit dessen Hilfe eigenständig lauffähige Lua-Programme ausgeführt werden können. LuaCAuch für die "Portierung" des Lua-Compiler LuaC wären vermutlich keinerlei Quelltext-Änderungen erforderlich gewesen - allerdings benötigt der Compiler offenbar eine Reihe zusätzlicher Einsprünge in das Lua-Laufzeitsystem. Da diese Einsprünge jedoch (mangels Bedarf) noch nicht in die Lua-Bibliotheken integriert wurden, steht der Lua-Compiler (LuaC.exe) unter Win32 noch nicht zur Verfügung. toluaDie Implementierung der Lua-Schnittstelle zu Tcl/Tk (TkLua) verwendet das "System" tolua, um die Integration der in C/C++ geschriebenen Tcl/Tk-Funktionen in Lua-Programme zu vereinfachen. Vor einer erfolgreichen Portierung von TkLua muß also zunächst auch tolua portiert werden. Glücklicherweise sind für die "Portierung" selbst keinerlei Änderungen am Quelltext erforderlich - der Autor mußte lediglich die in [6] erwähnten Korrekturen integrieren und eine passende "def"-Datei für die zu erstellende "tolua"-Bibliothek anlegen. Das Ergebnis der Bemühungen sind ein von der Kommandozeile aus startbares Programm (toLua.exe) sowie eine separat ladbare Bbiliothek (toLuaLib.dll). TkLuaTkLua stellt Lua-Programmen eine (sehr komfortable) Schnittstelle zu Tcl/Tk zur Verfügung. Für die erfolgreiche Portierung des Paketes müssen die zu den Tcl/Tk-Bibliotheken gehörenden "lib"-Dateien vorliegen - am einfachsten erreicht man dies durch Installation der Tcl/Tk-Quellen. Nach einer Übersetzung dieser Quellen stehen nicht nur die besagten "lib"-Dateien, sondern auch die dazu passenden Bibliotheken zur Verfügung - Probleme mit evtl. Inkompatibilitäten lassen sich somit von vorneherein vermeiden. Da Lua nur für den Aufruf von der Kommandozeile aus konzipiert ist, TkLua-Programme jedoch eine grafische Umgebung benötigen, muß zusätzlich zur reinen "Portierung" des Paketes selbst (die erneut keinerlei Änderungen am Quelltext erfordert) ein passendes Startprogramm geschrieben werden. Der Autor hat dieses Programm auf der Basis der "windowing shell" (wsh) aus der Tcl/Tk-Distribution sowie des ursprünglichen Lua-Startprogrammes entwickelt. Das Ergebnis der Arbeiten sind eine separat ladbare Bibliothek (TkLuaLib.dll) sowie ein sowohl von der Kommandozeile aus als auch aus Windows heraus aufrufbares Programm (TkLua.exe). LuaSocketDas Paket "LuaSocket" stellt Lua-Programmen eine Reihe von Funktionen für den Zugriff auf Datennetze zur Verfügung. Die "Portierung" beschränkt sich wie zuvor auf das Anlegen einer "def"-Datei für die zu erstellende Bibliothek sowie die Integration dieser Bibliothek in die Startprogramme Lua.exe und TkLua.exe. Das Ergebnis der Bemühungen sind eine separat ladbare Bibliothek (LuaSocketLib.dll) sowie um diese Bibliothek erweiterte Fassungen der Lua- und TkLua-Startprogramme (LuaSocket.exe, TkLuaSocket.exe). Distributionen und Projekt-DateienWer nur an den Ergebnissen der TkLua-Portierung interessiert ist, kann sich die betreffenden Dateien an dieser Stelle als ZIP-Archiv herunterladen - eine Installationsanleitung finden Sie im folgenden Abschnitt:
Zusätzlich stehen auch der Quelltext aller vom Autor erstellten/modifizierten Programme und Bibliotheken sowie die verwendeten Projektdateien für Visual Studio 6.0 als ZIP-Archiv zur Verfügung:
(Hinweis: die Original-Quelltexte von Lua, tolua, TkLua und LuaSocket sind in diesem ZIP-Archiv nicht enthalten) InstallationsanleitungEin Installationsskript steht derzeit noch nicht zur Verfügung - falls ausreichend Bedarf besteht, kann der Autor ggfs. versuchen, ein solches Skript zur Verfügung zu stellen. Bislang muß die Installation jedoch (wie nachstehend beschrieben) manuell vorgenommen werden:
Nach der erfolgreichen Absolvierung der genannten Installationsschritte sollten Lua, TkLua, LuaSocket und tolua unter Win32 zur Verfügung stehen (die zu LuaSocket gehörenden Module mit Implementierungen der Protokolle ftp, http, smtp sowie einigen Hilfsfunktionen befinden sich im Unterverzeichnis "Socket" unterhalb des Installationsverzeichnisses). Mithilfe der Beispiele des Autors sowie der Programme aus der "Acquainting"-Serie können Sie die Funktionsfähigkeit Ihrer Installation überprüfen. Literaturhinweise
|
| http://www.Andreas-Rozek.de/Lua/Distributions/index.html | (letzter Stand: 11.06.2002) |