Warum LUA in LUAC konvertieren?
Die Verteilung von Skripten als Bytecode entfernt den Parse-Overhead bei jedem Ladevorgang und verhindert das einfache Lesen des Quellcodes. Das .luac-Format ist die native kompilierte Bytecode-Darstellung von Lua, die direkt von der Standard-Lua-Toolchain erzeugt wird, die mit jeder Lua-Installation geliefert wird.
Wie man LUA in LUAC konvertiert
luac FREE
Führen Sie luac -o script.luac script.lua in einem Terminal aus. Fügen Sie -s hinzu, um Debug-Informationen für eine kleinere Datei zu entfernen, oder listen Sie mehrere .lua-Dateien auf, um sie in einen einzigen Bytecode-Block zu kompilieren.
LuaJIT FREE
Führen Sie luajit -b script.lua script.luac aus, um in das eigene Bytecode-Format von LuaJIT zu kompilieren. Beachten Sie, dass LuaJIT-Bytecode inkompatibel mit der Standard-Lua-VM ist.
Über diese Formate
Eine LUA-Datei ist Quellcode in der Lua-Skriptsprache, einer leichtgewichtigen Skriptsprache aus dem Jahr 1993. Jeder Code-Editor (VS Code, Notepad++) kann sie öffnen. Um sie auszuführen,…
.LUA-Details öffnen →Eine .LUAC-Datei ist mit Lua Compiled Source Code verknüpft, einer developer-Datei.
.LUAC-Details öffnen →Qualität & worauf zu achten ist
- Eine
.luac-Datei ist an die exakte Lua-Version gebunden, mit der sie kompiliert wurde; Bytecode vonluac 5.4wird von Lua 5.3 oder früher abgelehnt. - Bytecode ist nicht verschlüsselt - Tools wie
unluackönnen.luac-Dateien teilweise dekompilieren. Verlassen Sie sich nicht darauf, um sensible Logik zu schützen. - Das Bytecode-Format ist plattformspezifisch; ein auf einem 64-Bit-System kompilierter
.luackann auf einem 32-Bit-Gerät fehlschlagen. Kompilieren Sie auf derselben Plattform, auf der er ausgeführt werden soll.
Häufig gestellte Fragen
Ist luac bereits installiert, wenn ich Lua habe?
luac wird mit der offiziellen Lua-Distribution geliefert und erfordert keinen separaten Download.Läuft die .luac-Datei schneller als die ursprüngliche .lua?
Kann ich den ursprünglichen .lua-Quellcode aus einer .luac-Datei wiederherstellen?
-s an luac entfernt sogar Zeilennummern und Funktionsnamen, was die Wiederherstellung erschwert.Verwendet LuaJIT dasselbe Bytecode-Format wie Standard-Lua?
luajit -b nur, wenn das Zielsystem ebenfalls LuaJIT ausführt.