LuaFileSystem Überblick LuaFileSystem ist eine Lua-Bibliothek, die entwickelt wurde, um den Satz von Funktionen im Zusammenhang mit Dateisystemen durch die Standard-Lua-Distribution angeboten ergänzen. LuaFileSystem bietet eine tragbare Möglichkeit, auf die zugrunde liegende Verzeichnisstruktur und Dateiattribute zuzugreifen. LuaFileSystem ist freie Software und verwendet dieselbe Lizenz wie Lua 5.x (MIT). Status Aktuelle Version ist 1.6.3. Es funktioniert mit Lua 5.1, 5.2 und 5.3. Download LuaFileSystem Quelle kann von seiner Github Seite heruntergeladen werden. Geschichte Version 1.6.3 15 / Jan / 2015 Lua 5.3 Unterstützung. Verschiedene Bugfixes. Version 1.6.2 / Okt / 2012 Vollständige Lua 5.2-Kompatibilität (mit Lua 5.1 Fallbacks) Version 1.6.1 01 / Okt / 2012 Fix Build für Lua 5.2 Version 1.6.0 26 / Sep / 2012 getcwd Fix für Android Unterstützung für Lua 5.2 hinzufügen Lfs. link Weitere Fehlerkorrekturen Version 1.5.0 20 / Okt / 2009 Fügen Sie explizite nächste und schließen Methoden zum zweiten Rückgabewert von lfs. dir (das Verzeichnis-Objekt), für die explizite Iteration oder explizite Schließen. Zusätzliche Verzeichnissperre über die Funktion lfs. lockdir (siehe Handbuch). Version 1.4.2 03 / Feb / 2009 Fehler behoben lfs. attributes (Dateiname, Größe) Überlauf auf Dateien 2 Gb wieder (Fehlerbericht und Patch von KUBO Takehiro). Fehler behoben Kompilierfehler auf Solaris 10 (Fehlerbericht und Patch von Aaron B). Fixed Compilation Probleme mit Borland C. Version 1.4.1 07 / Mai / 2008 Dokumentationsüberprüfung behoben Windows Compilation Probleme behoben Bug in den Windows-Tests (Patch von Shmuel Zeigerman) behoben Bug lfs. attributes (Dateiname, Größe) Überlauf auf Dateien 2 Gb Version 1.4.0 13 / Feb / 2008 hinzugefügt Funktion lfs. setmode (funktioniert nur in Windows-Systemen). Lfs. attributes wirft einen Fehler auf, wenn das Attribut nicht existiert Version 1.3.0 26 / Oct / 2007 hat die Funktion lfs. symlinkattributes hinzugefügt (funktioniert nur in nicht Windows-Systemen). Version 1.2.1 08 / Mai / 2007 kompatibel nur mit Lua 5.1 (Lua 5.0 Unterstützung wurde gelöscht) Version 1.2 15 / Mar / 2006 hinzugefügt optionales Argument zu lfs. attributes hinzugefügt Funktion lfs. rmdir Fehlerkorrektur auf lfs. dir Version 1.1 30 / Mai / 2005 hinzugefügt Funktion lfs. touch. Version 1.0 21 / Jan / 2005 Version 1.0 Beta 10 / Nov / 2004Kredite LuaFileSystem wurde von Roberto Ierusalimschy, Andreacute Carregal und Tomaacutes Guisasola als Teil des Kepler Projektes entworfen. Die ihr Urheberrecht besitzt. LuaFileSystem wird derzeit von Faacutebio Mascarenhas. LuaFileSystem Einleitung LuaFileSystem ist eine Lua-Bibliothek entwickelt, um die Menge der Funktionen im Zusammenhang mit Dateisystemen durch die Standard-Lua-Distribution angeboten ergänzen. LuaFileSystem bietet eine tragbare Möglichkeit, auf die zugrunde liegende Verzeichnisstruktur und Dateiattribute zuzugreifen. Building LuaFileSystem sollte mit Lua 5.1 gebaut werden, so dass die Sprachbibliothek und Headerdateien für die Zielversion richtig installiert werden müssen. LuaFileSystem bietet ein Makefile und eine eigene Konfigurationsdatei, config. Die vor der Ausführung bearbeitet werden sollen. Die Datei hat einige Definitionen wie Pfade zu den externen Bibliotheken, Compileroptionen und dergleichen. Unter Windows muss die C-Laufzeit, die zum Kompilieren von LuaFileSystem verwendet wird, dieselbe Laufzeit sein, die Lua verwendet, oder einige LuaFileSystem-Funktionen funktionieren nicht. Installation Der einfachste Weg, um LuaFileSystem zu installieren, ist die Verwendung von LuaRocks: Wenn Sie LuaFileSystem manuell vorziehen, sollte die kompilierte Binärdatei in ein Verzeichnis in Ihrem C-Pfad kopiert werden. Referenz LuaFileSystem bietet folgende Funktionen: lfs. attributes (filepath, aname atable) Gibt eine Tabelle mit den Dateiattributen entsprechend filepath zurück (oder nil gefolgt von einer Fehlermeldung im Fehlerfall). Wenn das zweite optionale Argument angegeben wird und ein String ist, wird nur der Wert des benannten Attributs zurückgegeben (diese Verwendung entspricht lfs. attributes (filepath) aname, aber die Tabelle wird nicht erstellt und nur ein Attribut wird aus dem Verzeichnis abgerufen OS). Wenn eine Tabelle als zweites Argument übergeben wird, wird sie mit Attributen gefüllt und anstelle einer neuen Tabelle zurückgegeben. Die Attribute werden wie folgt beschrieben: attribut mode ist ein String, alle anderen sind Zahlen und die zeitbezogenen Attribute verwenden dieselbe Zeitreferenz für osime. Dev auf Unix-Systemen, stellt dies das Gerät dar, auf dem sich der Inode befindet. Unter Windows stellt die Laufwerksnummer des Datenträgers, der die Datei ino auf Unix-Systemen enthält, die Inode-Nummer dar. Auf Windows-Systemen hat dies keinen Sinnmodus-String, der den zugehörigen Schutzmodus repräsentiert (die Werte könnten in der Datei uid user-id liegen) (Nur Unix, immer 0 unter Windows) gid group-id des Besitzers (nur Unix, immer 0 unter Windows) rdev auf Unix-Systemen repräsentiert den Gerätetyp für spezielle Datei-Inodes. Auf Windows-Systemen steht dasselbe wie dev Zugriffszeit des letzten Zugriffs Modifikationszeit der letzten Datenänderung Änderungszeit des letzten Dateistatus Änderung Größe Dateigröße, in Bytes Berechtigungen Dateirechte Stringblöcke Block für Datei zugewiesen (nur Unix) blksize optimale Dateisystem I / O blockieren (nur Unix) Diese Funktion nutzt intern intern also, wenn der angegebene Dateipfad eine symbolische Verknüpfung ist, wird gefolgt (wenn es auf einen anderen Link verweist, wird die Kette rekursiv gefolgt) und die Informationen beziehen sich auf die Datei, auf die es verweist. Um Informationen über den Link selbst zu erhalten, lesen Sie die Funktion lfs. symlinkattributes. Lfs. chdir (Pfad) Ändert das aktuelle Arbeitsverzeichnis in den angegebenen Pfad. Gibt true zurück, wenn Erfolg oder nil plus ein Fehlerstring vorliegt. Lfs. lockdir (Pfad, secondsstale) Erstellt eine Sperrdatei (genannt lockfile. lfs) im Pfad, falls sie nicht existiert und die Sperre zurückgibt. Wenn die Sperre bereits vorhanden ist, prüft sie, ob sie veraltet ist, mit dem zweiten Parameter (Vorgabe für den zweiten Parameter ist INTMAX, was in der Praxis bedeutet, dass die Sperre niemals veraltet ist.) Um die Sperre aufzuheben: free () Lfs. currentdir () Gibt einen String mit dem aktuellen Arbeitsverzeichnis oder nil plus einer Fehlerzeichenfolge zurück iter, dirobj Lfs. dir (Pfad) Lua-Iterator über die Einträge eines gegebenen Verzeichnisses. Immer wenn der Iterator mit dirobj aufgerufen wird, gibt er einen Verzeichniseintragnamen als String oder nil zurück, wenn es keine weiteren Einträge gibt. Sie können auch durch den Aufruf von dirobj iterieren Lfs. lock (filehandle, mode, start, length) Sperrt eine Datei oder einen Teil davon, wenn der Pfad ein Verzeichnis ist Diese Funktion wirkt auf offene Dateien, die als das erste Argument angegeben werden sollen. Der Zeichenfolgemodus kann entweder r (für eine Lese - / gemeinsame Sperre) oder w (für eine Schreib - / Exklusivsperre) sein. Die optionalen Argumente Start und Länge können verwendet werden, um einen Startpunkt und seine Länge anzugeben, die beide Zahlen sein sollen. Gibt true zurück, wenn die Operation im Fehlerfall erfolgreich war, gibt sie nil plus einen Fehlerstring zurück. Lfs. link (alt, neu, symlink) Erstellt einen Link. Das erste Argument ist das Objekt zu verknüpfen und das zweite ist der Name des Links. Wenn das optionale dritte Argument true ist, wird der Link durch eine symbolische Verknüpfung (standardmäßig wird ein Hardlink erstellt). Lfs. mkdir (dirname) Erstellt ein neues Verzeichnis. Das Argument ist der Name des neuen Verzeichnisses. Gibt true zurück, wenn die Operation im Fehlerfall erfolgreich war, gibt sie nil plus einen Fehlerstring zurück. Lfs. rmdir (dirname) Entfernt ein existierendes Verzeichnis. Das Argument ist der Name des Verzeichnisses. Gibt true zurück, wenn die Operation im Fehlerfall erfolgreich war, gibt sie nil plus einen Fehlerstring zurück. Lfs. setmode (file, mode) Setzt den Schreibmodus für eine Datei. Der Modus-String kann entweder binär oder Text sein. Gibt true zurück, gefolgt vom vorherigen Modus-String für die Datei oder nil, gefolgt von einem Fehler-String im Falle von Fehlern. Auf Nicht-Windows-Plattformen, bei denen die beiden Modi identisch sind, hat die Einstellung des Modus keine Wirkung, und der Modus wird immer als binär zurückgegeben. Lfs. symlinkattributes (filepath, aname) Identisch mit lfs. attributes, außer dass es Informationen über den Link selbst erhält (nicht die Datei, auf die er sich bezieht). Unter Windows unterstützt diese Funktion noch keine Links und ist mit lfs. attributes identisch. Lfs. touch (filepath, atime, mtime) Setzt Zugriffs - und Änderungszeiten einer Datei. Diese Funktion ist eine Bindung an die Funktion utime. Das erste Argument ist der Dateiname, das zweite Argument (atime) die Zugriffszeit und das dritte Argument (mtime) die Änderungszeit. Beide Zeiten sind in Sekunden angegeben (die mit Lua-Standardfunktion os. time erzeugt werden sollen). Wenn die Änderungszeit weggelassen wird, wird die bereitgestellte Zugriffszeit verwendet, wenn beide Male weggelassen werden, wird die aktuelle Zeit verwendet. Gibt true zurück, wenn die Operation im Fehlerfall erfolgreich war, gibt sie nil plus einen Fehlerstring zurück. Lfs. unlock (filehandle, start, length) Öffnet eine Datei oder einen Teil davon. Diese Funktion wirkt auf offene Dateien, die als das erste Argument angegeben werden sollen. Die optionalen Argumente Start und Länge können verwendet werden, um einen Startpunkt und seine Länge anzugeben, die beide Zahlen sein sollen. Gibt true zurück, wenn die Operation im Fehlerfall erfolgreich war, gibt es nil plus einen Fehlerstring zurück.21.2.2 ndash Binärdateien Die einfachen Modellfunktionen io. input und io. output öffnen immer eine Datei im Textmodus (die Standardeinstellung). In Unix gibt es keinen Unterschied zwischen binären Dateien und Textdateien. Aber in einigen Systemen, insbesondere Windows, müssen Binärdateien mit einem speziellen Flag geöffnet werden. Um solche Binärdateien zu verarbeiten, müssen Sie io. open verwenden. Mit dem Buchstaben b akut in der Moduszeichenfolge. Binärdaten in Lua werden ähnlich wie Text behandelt. Ein String in Lua kann beliebige Bytes enthalten, und fast alle Funktionen in den Bibliotheken können beliebige Bytes verarbeiten. (Sie können sogar Musterabgleich über binäre Daten durchführen, solange das Muster kein Null-Byte enthält. Wenn Sie mit dem Byte Null übereinstimmen möchten, können Sie stattdessen die Klasse z verwenden.) Normalerweise lesen Sie Binärdaten entweder mit der Alle Muster, dass die ganze Datei liest, oder mit dem Muster n. Die n Byte liest. Als ein einfaches Beispiel konvertiert das folgende Programm eine Textdatei vom DOS-Format in das Unix-Format (das heißt, es übersetzt Sequenzen von Wagenrücklauf-Zeilenumbrüchen in Zeilenumbrüche). Es verwendet nicht die Standard-E / A-Dateien (stdin / stdout), da diese Dateien im Textmodus geöffnet sind. Stattdessen geht man davon aus, dass die Namen der Eingabedatei und der Ausgabedatei als Argumente an das Programm übergeben werden: Sie können dieses Programm mit folgender Kommandozeile aufrufen: Als weiteres Beispiel gibt das folgende Programm alle in einer Binärdatei gefundenen Zeichenfolgen aus. Das Programm geht davon aus, dass ein String eine nullterminierte Sequenz aus sechs oder mehr gültigen Zeichen ist, wobei ein gültiges Zeichen ein beliebiges Zeichen ist, das von den pattern validchars akzeptiert wird. In unserem Beispiel, das die alphanumerische, die Interpunktion und die Leerzeichen enthält. Wir verwenden Verkettung und string. rep, um ein Muster zu erstellen, das alle Sequenzen von sechs oder mehr gültigen Zeichen erfasst. Das z am Ende des Musters entspricht dem Byte Null am Ende eines Strings. Als letztes Beispiel macht das folgende Programm einen Dump einer Binärdatei. Das erste Programmargument ist wiederum der Name der Eingabedatei, die Ausgabe geht an die Standardausgabe. Das Programm liest die Datei in Stücke von 10 Byte. Für jedes Chunk schreibt es die hexadezimale Darstellung jedes Bytes, und dann schreibt es das Chunk als Text und ändert die Steuerzeichen zu den Punkten. Angenommen, wir speichern das Programm in einer Datei namens vip, wenn wir das Programm auf sich selbst anwenden, mit dem Aufruf wird es eine Ausgabe wie diese (in einer Unix-Maschine) zu produzieren: Copyright-Kopie 2003ndash2004 Roberto Ierusalimschy. Alle Rechte vorbehalten. Input - und Output-Funktionen Die I / O-Bibliothek bietet zwei verschiedene Stile für die Dateiverarbeitung. Der erste verwendet implizite Dateideskriptoren, dh es gibt Vorgänge, um eine Standard-Eingabedatei und eine Standardausgabedatei festzulegen, und alle Eingabe - / Ausgabeoperationen sind über diesen Standarddateien. Der zweite Stil verwendet explizite Dateideskriptoren. Bei der Verwendung von impliziten Dateideskriptoren werden alle Operationen von der Tabelle io geliefert. Wenn explizite Dateideskriptoren verwendet werden, gibt die Operation io. open einen Dateideskriptor zurück, und dann werden alle Operationen als Methoden vom Dateideskriptor bereitgestellt. Die Tabelle io stellt außerdem drei vordefinierte Dateideskriptoren mit ihren üblichen Bedeutungen von C: io. stdin zur Verfügung. Io. stdout. Und io. stderr. Ein Dateideskriptor ist eine Benutzerdatei, die den Dateistrom (FILE) enthält. Mit einem unverwechselbaren Metatable von der I / O-Bibliothek erstellt. Wenn nicht anders angegeben, geben alle E / A-Funktionen den Fehler nil zurück (plus eine Fehlermeldung als zweites Ergebnis) und einen anderen Wert als null beim Erfolg. Diese Funktion öffnet eine Datei, die im String-Modus angegeben ist. Es gibt einen neuen Dateideskriptor zurück, oder im Fehlerfall null plus eine Fehlermeldung. Der Modus-String kann einer der folgenden sein: r Lesemodus (der Standardwert) w Schreibmodus a Anhangmodus r Aktualisierungsmodus, alle vorherigen Daten werden im Aktualisierungsmodus beibehalten, alle vorherigen Daten werden durch einen Aktualisierungsmodus gelöscht, vorherige Daten werden beibehalten , Ist das Schreiben nur am Ende der Datei erlaubt. Die Moduszeichenfolge kann auch ein b am Ende haben, das in einigen Systemen benötigt wird, um die Datei im Binärmodus zu öffnen. Dieser String ist genau das, was in der Standard-C-Funktion fopen verwendet wird. Entspricht der Datei: schließen. Ohne Datei schließt die Standard-Ausgabedatei. Entspricht der Datei: flush über die Standard-Ausgabedatei. Wenn sie mit einem Dateinamen aufgerufen wird, öffnet sie die benannte Datei (im Textmodus) und verwendet sie als Standard-Eingabe-Deskriptor. Wenn es mit einem Dateideskriptor aufgerufen wird, setzt es einfach den Dateideskriptor als Standard-Eingabedatei. Wenn es ohne Parameter aufgerufen wird, gibt es den aktuellen Standard-Eingabedatei-Deskriptor zurück. Im Fehlerfall wirft diese Funktion den Fehler auf, anstatt einen Fehlercode zurückzusenden. Öffnet den angegebenen Dateinamen im Lesemodus und gibt eine Iteratorfunktion zurück, die bei jedem Aufruf eine neue Zeile aus der Datei zurückgibt. Daher wird die Konstruktion über alle Zeilen der Datei iterieren. Wenn die Iteratorfunktion das Ende der Datei erkennt, schließt sie die Datei und gibt nil zurück (um die Schleife zu beenden). Der Aufruf io. lines () (ohne Dateiname) entspricht io. input (): lines (). Dh es iteriert über die Zeilen der Standard-Eingabedatei. Ähnlich wie io. input. Sondern arbeitet über die Standard-Ausgabedatei. Entspricht io. input (): read. Gibt einen Deskriptor für eine temporäre Datei zurück. Diese Datei ist im Update-Modus geöffnet und wird nach Beendigung des Programms automatisch entfernt. Überprüft, ob obj ein gültiger Dateideskriptor ist. Gibt die String-Datei zurück, wenn obj ein offener Dateideskriptor, eine geschlossene Datei ist, wenn obj ein geschlossener Dateideskriptor ist und nil, wenn obj kein Dateideskriptor ist. Entspricht io. output (): write. Speichert alle geschriebenen Daten in Datei f. Gibt eine Iteratorfunktion zurück, die bei jedem Aufruf eine neue Zeile aus der Datei f zurückgibt. Daher wird die Konstruktion über alle Zeilen der Datei f wiederholen. (Im Gegensatz zu io. lines schließt diese Funktion die Datei nicht, wenn die Schleife endet.) Liest die Datei f. Nach den angegebenen Formaten, die angeben, was zu lesen. Für jedes Format gibt die Funktion einen String (oder eine Zahl) mit den gelesenen Zeichen zurück oder nil, wenn er keine Daten mit dem angegebenen Format lesen kann. Wenn es ohne Formate aufgerufen wird, verwendet es ein Standardformat, das die gesamte nächste Zeile liest (siehe unten). Die verfügbaren Formate sind n liest eine Zahl, dies ist das einzige Format, das eine Zahl anstelle eines Strings zurückgibt. A liest die gesamte Datei, beginnend bei der aktuellen Position. Am Ende der Datei gibt sie die leere Zeichenfolge zurück. L liest die nächste Zeile (das Zeilenende überspringen) und kehrt nil am Ende der Datei zurück. Dies ist das Standardformat. Anzahl liest einen String mit bis zu dieser Anzahl von Zeichen, Rückkehr nil am Ende der Datei. Wenn Zahl null ist, liest sie nichts und gibt einen leeren String oder nil am Ende der Datei zurück. Setzt die Indexposition für die Datei f. Gemessen vom Anfang der Datei bis zu der Position, die durch den Versatz plus eine durch den String angegebene Basis gegeben wird, wie folgt: set base ist die Position 0 (Anfang der Datei) cur base ist die aktuelle Position end base ist das Ende der Datei In Fall von Erfolg, Funktion sucht zurückgibt die endgültige Datei Position, gemessen in Byte vom Anfang der Datei. Wenn diese Funktion fehlschlägt, gibt sie nil zurück. Plus einen String, der den Fehler beschreibt. Der Standardwert für whence ist cur. Und für Offset 0. Daher gibt die Aufrufdatei: seek () die aktuelle Dateiposition zurück, ohne die Aufrufdatei zu ändern: seek (set) setzt die Position auf den Anfang der Datei (und liefert 0) und die Call-Datei : Suchen (Ende) setzt die Position auf das Ende der Datei und gibt ihre Größe zurück. Schreibt den Wert jedes seiner Argumente in die Datei f. Die Argumente müssen Strings oder Zahlen sein. Um andere Werte zu schreiben, verwenden Sie tostring oder string. format vor dem Schreiben. Siehe auchEinführung Dies ist ein Schritt-für-Schritt-Tutorial zum Aufstehen und Ausführen mit Lua auf Microsoft Windows-Systemen durch das Herunterladen und Kompilieren der Quellen mit nur freien Tools oder Tools bereits vorhanden auf jeder Windows-Installation. Sehr wenig Programmierkenntnisse sind vom Anwender erforderlich. Dieses Tutorial kann auch von Interesse für erfahrene Linux-Benutzer mit wenig Wissen über Windows-Plattformen sein. Wenn Sie ein erfahrener Programmierer sind und finden dieses Tutorial zu einfach oder begrenzt, konsultieren Sie bitte die Seite BuildingLua. Was weitaus technischer und detaillierter ist. Überblick und Voraussetzungen Annahmen über den Leser: Hat eine allgemeine Kenntnis des Windows-Dateisystems und weiß, wie man grundlegende Operationen mit den vom Betriebssystem bereitgestellten Tools ausführt (das Dateisystem durchsuchen, kopieren / verschieben, eine Datei umbenennen, Verzeichnis, etc.). Weiß, wie man eine Datei aus dem Internet mit einem Web-Browser herunterladen. Weiß, wie man ein Programm in Windows mit einem Installer installieren. Weiß, was eine Textdatei ist und wie man eine mit einem Texteditor (Windows Notepad ist genug für dieses Tutorial, aber die frei verfügbare SciTE oder TextAdept könnte bessere Entscheidungen für einen Anfänger Programmierer). Weiß, was ein komprimiertes Archiv ist und wie es dekomprimiert wird. Weiß, was die Windows-Kommando-Shell ist und wie es zu bringen. Weiß, was die Windows-ausführbaren Dateien Suchpfad ist und wie man Einträge hinzufügen (dies wird manchmal als den Systempfad oder einfach den Pfad und bezieht sich auf Windows PATH Umgebungsvariable 1). Viele der oben genannten Annahmen sind keine strengen Anforderungen, da im Folgenden einige Verfahren detailliert erläutert werden, aber der Leser sollte nicht erwarten, zu viel Hand-holding auf solche Themen. Das Tutorial ist in sequenziellen Schritten organisiert, die wie folgt skizziert werden können: Laden Sie einen geeigneten C-Compiler (TDM GCC) herunter. Herunterladen Lua source package. Laden Sie einen Dekompressor für das Lua-Quellpaket (7-Zip) herunter. Installieren Sie den Compiler. Installieren Sie den Dekomprimierer. Entpacken Sie das Archiv an einem geeigneten Ort. Konfigurieren Sie den Compiler so, dass er die Quellen finden und den Bauprozess starten kann (dazu verwenden wir ein Windows-Kommando-Shell-Skript). Wichtiger Hinweis: Wir empfehlen Ihnen, diese Seite vollständig zu lesen, bevor Sie mit dem Verfahren beginnen. Vergewissern Sie sich, alles im Voraus verstanden haben: Dies könnte sparen Sie einige Zeit und Probleme später. Hinweis: Das Verfahren wurde unter Verwendung eines Kontos mit Administratorrechten auf einem x86-32-Bit-Rechner mit Windows XP Professional mit installiertem Service Pack 3 (SP3) getestet ( Intel Mobile Core 2 Duo T7500 - 2GB RAM) erhältlich. Als Compiler wird TDM GCC 4.9.2 (32 Bit Version) verwendet. Hinweis: Im Laufe der Zeit einige der Links hier enthalten könnte auch veraltet. Thats, warum unten geben wir nicht nur die direkten Links zu Paketen, sondern auch den Link zu den wichtigsten Seiten für die Anwendungen beteiligt. Dies sollte es dem motivierten Leser ermöglichen, sich an die offensichtlichen Änderungen anzupassen (z. B. künftige Versionsnummern in den Links zu kompensieren), die die Webseiten selbst durchsuchen, sollte diese Seite nicht aktualisiert werden. Schritt 1: Laden Sie den Compiler (TDM-GCC) Wir verwenden den Windows-Port des Open-Source-GCC-Compilers von TDM. Die Download-Seite finden Sie unter 2., während der folgende Link für das Paket ist, das wir benötigen: 3. Klicken Sie auf den vorherigen Link, folgen Sie den Anweisungen und warten Sie, bis der Download abgeschlossen ist. Die heruntergeladene Datei sollte tdm-gcc-4.9.2.exe sein. Es ist ein 30MB Download, so sicher sein, eine schnell genug Internet-Verbindung haben. Um mögliche Probleme zu vermeiden, stellen Sie sicher, dass das heruntergeladene Paket in einem Verzeichnis (Ordner) liegt, dessen vollständiger Pfad keine Leerzeichen enthält. Wenn dies nicht der Fall ist, kopieren Sie es oder verschieben Sie es in ein Verzeichnis, das diese Anforderung erfüllt. Alle Pakete, die gut herunterladen sollte am Ende in diesem Verzeichnis (wir werden es als temporäre Arbeitsverzeichnis für das gesamte Tutorial verwenden). Für die Zwecke dieses Tutorials gehen wir davon aus, dass Sie den folgenden Ordner als Arbeitsverzeichnis erstellt haben: Kopieren (oder Verschieben) des Installationspakets, das Sie soeben im Arbeitsverzeichnis heruntergeladen haben, wenn Sie es dort überhaupt nicht heruntergeladen haben. Jetzt ist unser Arbeitsverzeichnis sollte den folgenden Inhalt haben: Schritt 2: Download Lua Sources Lua Quellen Download-Seite ist 4. Dies ist die direkte Dowload-Link auf die neueste Version zum Zeitpunkt des Schreibens: 5. Klicken Sie auf den vorherigen Link, folgen Sie den Anweisungen Und warten Sie, bis der Download abgeschlossen ist. Stellen Sie sicher, dass die Datei, die Sie herunterladen, im Verzeichnis C: gcc-lua-install (oder kopieren / verschieben Sie es dort nach dem Download - wir werden das nicht wiedergeben) liegen. Jetzt haben wir zwei Dateien in unserem Arbeitsverzeichnis: Schritt 3: Laden Sie einen Decompressor (7-Zip) für Lua-Quellen Lua-Quellen sind in einem auf Linux-Plattformen sehr verbreiteten Archivformat verpackt, aber unter Windows ist das TAR-GZ-Format ungewöhnlich , Wie durch die. tar. gz Doppelerweiterung der Datei angedeutet. Windows-Betriebssysteme können nicht dekomprimieren dieses Format nativ, so brauchen wir ein Programm, das tun kann. Ein sehr gutes und vielseitig begabtes freies Kompression / Dekompressionprogramm für Windows, das TAR-GZ Akten (und viele anderen komprimierten Formate) behandeln kann, ist 7-zip. Da wir den Prozess so einfach wie möglich halten wollen, verwenden wir nicht das ursprüngliche 7-Zip-Installationspaket, da dieses das System bei der Installation ändert. Stattdessen verwenden wir eine alternative Distribution, die von PortableApps verpackt und auf der Seite verfügbar ist: 6. Klicken Sie auf den Download-Link, folgen Sie den Anweisungen und warten Sie, bis der Download abgeschlossen ist. Stellen Sie sicher, dass auch diese Datei in unserem Arbeitsverzeichnis liegt. Jetzt haben wir drei Dateien in unserem Arbeitsverzeichnis: Schritt 4: Installieren des Compilers Jetzt durchsuchen mit Windows Explorer. Windows-Grafik-Datei-Manager (dies ist nicht Internet Explorer), in unserem Arbeitsverzeichnis und führen Sie die Compiler-Installation durch einen Doppelklick auf tdm-gcc-4.9.2.exe. Es erscheint ein Dialog. Deaktivieren Sie die Option Auf aktualisierte Dateien auf dem TDM-GCC-Server prüfen. Drücken Sie die Taste Erstellen. Im angezeigten Eingabefeld geben Sie C: gcc-lua-installtdm-gcc als Installationsverzeichnis an. Drücken Sie die Taste Weiter. Im daraufhin angezeigten Auswahlbaum gelangen Sie zum Ende und deaktivieren Sie die Optionen Startmenüpunkte und Hinzufügen zu PATH (dieser Schritt ist nicht unbedingt erforderlich, stellt aber sicher, dass die Compilerinstallation das System außer dem Extrahieren der Dateien in das angegebene Verzeichnis vollständig verlässt über). Drücken Sie die Taste Installieren und warten Sie, bis die Installation abgeschlossen ist. Wenn das Installationsprogramm die Installation erfolgreich erklärt, drücken Sie die Taste Weiter. Drücken Sie die Taste Finish (Sie können die Readme-Datei lesen oder nicht - es ist nicht notwendig für unsere Zwecke). Der aktuelle Inhalt unseres Arbeitsverzeichnisses sollte nun sein: wobei das letzte Element das Unterverzeichnis ist, in dem der Compiler installiert ist (beachten Sie, dass diese Elemente im Windows Explorer wahrscheinlich in einer anderen Reihenfolge angezeigt werden). Schritt 5: Installieren Sie den Dekomprimierer Jetzt führen Sie das tragbare 7-Zip-Installationsprogramm durch Doppelklicken auf die Datei 7-ZipPortable9.20Rev2.paf. exe in unserem Arbeitsverzeichnis aus. Es erscheint ein Dialog. Wählen Sie Englisch als Sprache (dies ist nicht unbedingt erforderlich, aber ansonsten entsprechen die folgenden Anweisungen möglicherweise nicht den Nachrichten in den Dialogfeldern youll siehe). Drücken Sie die Taste Ok. Drücken Sie die Taste Weiter. Im angezeigten Eingabefeld geben Sie C: gcc-lua-install7zip als Zielordner an. Drücken Sie die Taste Installieren und warten Sie, bis die Installation abgeschlossen ist. Drücken Sie die Taste Fertig. Der aktuelle Inhalt unseres Arbeitsverzeichnisses sollte jetzt sein: wobei das letzte Element das Unterverzeichnis ist, in dem nun 7-Zip installiert ist. Schritt 6: Entpacken von Lua-Quellen mit 7-Zip Öffnen Sie das 7-Zip-Installationsverzeichnis (z. B. C: gcc-lua-install7zip) und doppelklicken Sie auf die Datei 7-ZipPortable. exe. Dies wird 7-Zip ausführen und bringen Sie das Programm-Hauptfenster, das vage ähnelt Windows Explorer. Mit 7-Zip-Fenster. Navigieren Sie zu unserem Arbeitsverzeichnis (z. B. können Sie C: gcc-lua-install in die Adresszeile kopieren und einfügen und die Eingabetaste drücken). Inside 7-Zip-Fenster, doppelklicken Sie auf Lua-Paket-Datei (lua-5.3.0.tar. gz), sollten Sie die Interna des Pakets als einzelnen Ordner mit dem Namen lua-5.3.0.tar sehen. Doppelklicken Sie auf lua-5.3.0.tar. Sollten Sie diesen Ordner eingeben und einen anderen Ordner mit dem Namen lua-5.3.0 sehen. Klicken Sie mit der rechten Maustaste auf lua-5.3.0. Sollte ein Kontextmenü erscheinen. Wählen Sie Kopieren an. Option aus diesem Menü. Ein Dialog mit einer Kopie-Beschriftung sollte angezeigt werden. Geben Sie hier das Arbeitsverzeichnis (C: gcc-lua-install) ein und drücken Sie Ok. Schließen Sie 7-Zip-Fenster, brauchen wir es nicht mehr. Jetzt durchsuchen Sie in unserem Arbeitsverzeichnis und überprüfen Sie es: ein neues Unterverzeichnis namens lua-5.3.0 sollte vorhanden sein. Der aktuelle Inhalt unseres Arbeitsverzeichnisses sollte nun sein: wobei das letzte Element das Unterverzeichnis ist, in dem Lua-Quellen entpackt wurden. Schritt 6: Erstellen Sie ein Windows-Shell-Skript, um die Build-Laufwerk Der Leser sollte eine Textdatei namens build. cmd in unserem Arbeitsverzeichnis erstellen, dann kopieren und fügen Sie den folgenden Text in ihm. Der aktuelle Inhalt unseres Arbeitsverzeichnisses sollte jetzt sein: Führen Sie nun das Shell-Skript durch einen Doppelklick auf build. cmd aus. Sollte ein Fenster mit schwarzem Hintergrund erscheinen. Im Inneren sollten Sie die Nachrichten, die durch das Skript, wie es funktioniert (die meisten von ihnen sind aus GCC während der Zusammenstellung der Lua-Quellen). Dies kann eine Weile dauern, aber es hängt stark von der Leistung Ihres PCs ab. Mit unserem Testsystem dauerte es etwa eine Minute, aber das war ein altes System. Nachdem das Kompilieren abgeschlossen ist, erzeugt das Skript außerdem eine saubere binäre Verteilung (d. h. ohne unnötige Quelldateien) in unserem Arbeitsverzeichnis und führt einen einfachen Test durch, der eine Begrüßungsnachricht vor dem Beenden druckt. Sie sollten diese selbsterklärende Meldung am Ende der Ausgabe im schwarzen Fenster sehen. Sie können nun das schwarze Fenster schließen. Der aktuelle Inhalt unseres Arbeitsverzeichnisses sollte nun folgendermaßen lauten: Schritt 7: Kopieren der Lua-Binärinstallation an einem geeigneten Ort Das Verzeichnis C: gcc-lua-installlua enthält nun alles, was benötigt wird, um ein Lua-Skript auszuführen. Sie können dieses Verzeichnis mit seinem Inhalt kopieren, wo immer Sie bequem finden können (auch auf einem USB-Stick). Die interne Struktur des lua binären Installationsverzeichnisses sollte folgende sein: Im Unterverzeichnis bin finden Sie lua. exe. Der Lua-Interpreter (wenn Sie auf ihn doppelklicken, wird er im interaktiven Modus ausgeführt), während im Dokumentunterverzeichnis das Lua-Referenzhandbuch zu finden ist. Schritt 8: Konfigurieren des Systems, um Lua-Dateien auszuführen Wenn Sie in der Lage sein, Folgendes einzugeben: Um myscript. lua aus der Befehlszeile auszuführen, müssen Sie das Unterverzeichnis Lua bin auf dem Windows-Suchpfad setzen. Abschließende Bemerkungen Nachdem Sie das lua-Unterverzeichnis an seinem endgültigen Speicherort kopiert haben, konnten Sie das Arbeitsverzeichnis mit seinem gesamten Inhalt vollständig löschen. Allerdings können Sie viele nützliche Dinge leicht zu retten: Die Installationspakete lua-5.3.0.tar. gz. Tdm-gcc-4.9.2.exe und 7-ZipPortable9.20Rev3.paf. exe können für zukünftige Anforderungen oder Backup-Zwecke gespeichert werden. Die GCC-Installation dir tdm-gcc kann beliebig kopiert oder verschoben werden (achten Sie darauf, dass es nicht in ein Verzeichnis mit Leerzeichen gesetzt wird) und die Werkzeuge in tdm-gccbin können direkt über die Befehlszeile aufgerufen werden (Sie müssen tdm hinzufügen - gcc auf dem Windows-Suchpfad, wenn Sie die vollständige Angabe des vollständigen Pfadnamens vermeiden möchten). Die 7-Zip-Installation ist auch voll verlagbar (tragbar, als Nicht-Programmierer Windows-Benutzer würde sagen, aber Portabilität in der Programmierung hat eine andere Bedeutung 7). So können Sie verschieben / kopieren, wo immer Sie wollen und starten 7-Zip durch Ausführen der 7-ZipPortable. exe ausführbare Datei im Inneren. Es ist so leicht, es passt schön auch auf einer Pendrive Wenn Sie neugierig sind, können Sie auch das Verzeichnis zu erkunden und einen Blick in die Lua-Quellen, aber Sie müssen ein C-Programmierer, um die meisten von ihnen zu verstehen haben Spaß mit Lua.
No comments:
Post a Comment