programa net luabinaries emulador windows lua

windows - emulador - luabinaries sourceforge net download



Crear ejecutables Lua independientes (5)

Como dice ''.exe'', supongo que está buscando una solución de Windows. Una idea es simplemente agregar scripts a un ejecutable de intérprete precompilado. Puede o no calificar como ''fácil'' en su libro.

El intérprete debe poder leerse a sí mismo, analizar su encabezado para determinar dónde termina el archivo .exe regular (es decir, dónde comienza el guión) y luego entregar el resto del archivo a Lua.

Otras soluciones no requieren que el intérprete trabaje tan duro, pero requieren un enlace más complicado, mientras que con este método, la ejecución de un script puede ser tan simple como

copy interpreter.exe+script.lua script.exe

¿Existe alguna manera fácil de crear archivos .exe autónomos a partir de los scripts de Lua? Básicamente esto implicaría vincular el intérprete de Lua y los guiones.

Creo que es posible (PLT Scheme permite la creación de ejecutables independientes de la misma manera), pero ¿cómo exactamente?


Echa un vistazo a srlua . Hace lo que necesitas.

Es de uno de los autores de Lua. En esta dirección también hay binarios de Windows precompilados, por lo que creo que sería mucho más fácil.


Además de las sugerencias anteriores, puedes echar un vistazo a L-Bia .

Puede hacer ejecutables independientes, incluidos los scripts lua y las bibliotecas dinámicas necesarias.


Para hacer ejecutable desde el script, use la utilidad bin2c de la siguiente manera:

luac script.lua -o script.luac bin2c script.luac > code.c

Luego, cree en el archivo de editor de texto main.c y compile / vincule con su compilador favorito. Eso es. (Nota: el ejecutable también admite argumentos de línea de comando)

Ejemplo con MSVC:

cl /I "./" /I "$(LUA_DIR)/include" /D "_CRT_SECURE_NO_DEPRECATE" /D "_MBCS" /GF /FD /EHsc /MD /Gy /TC /c main.c ld /SUBSYSTEM:CONSOLE /RELEASE /ENTRY:"mainCRTStartup" /MACHINE:X86 /MANIFEST $(LUA_DIR)/lib/lua5.1.lib main.obj /out:script.exe mt -manifest $script.manifest -outputresource:script.exe;1

Use / SUBSYSTEM: WINDOWS para el ejecutable GUI. Todo eso no es fácil, solo por primera vez, puede crear un archivo por lotes para automatizar el proceso una vez que lo haya probado con éxito.

C Principal:

#include <stdlib.h> #include <stdio.h> #include "lua.h" #include "lauxlib.h" #include "lualib.h" int main(int argc, char *argv[]) { int i; lua_State *L = luaL_newstate(); luaL_openlibs(L); lua_newtable(L); for (i = 0; i < argc; i++) { lua_pushnumber(L, i); lua_pushstring(L, argv[i]); lua_rawset(L, -3); } lua_setglobal(L, "arg"); #include "code.c" lua_close(L); return 0; }


Como este tema tiene cierto interés "perpetuo" y las posibles respuestas son "fluidas" en el sentido de que pueden surgir nuevas soluciones (mientras que las antiguas pueden volverse obsoletas), aquí hay otra posibilidad (para Windows) y dependencias de fuente pura de Lua.

Enlace: utilidad de consola de Windows para convertir en un solo paso una fuente Lua con sus dependencias de origen Lua en un archivo C listo para compilación.

Nota: Excepto donde haya diferencias en el bytecode para otras plataformas, el código C resultante debería ser capaz de compilarse en cualquier plataforma que pueda compilar fuentes Lua originales y crear binarios nativos independientes de sus aplicaciones Lua.