который можно будет исполнять без луа интерпретатора?
Можно скомпилировать луа-интерпретатор с вшитым скриптом, который он будет выполнять.
Создаешь байт-код из скрипта, преобразуешь его в массивчик внутри h файла и подключаешь к сишной проге своей, которая подгружает и инициализирует Lua машинку, которой потом через loadbuffer скармливаешь полученный массивчик
Можно 1) держать строку со скриптом и запустить свой интерпретатор для единственного сценария 2) Можно таскать байт-код 3) Можно написать сценарий на Си. Без интерпретатора буквально не получится, по сути каждый способ по своему таскает интерпретатор, т.к. луа - интерпретируемый язык, но насколько я понял вы не совсем в этом разбираетесь и под интерпретатором подразумеваете лишь интерактивную строку, без которой интерпретатор луа может работать, т.к. сам интерпретатор занимается только обработкой исходников на луа и их выполнением.
а что ты вообще хочешь сделать по итогу?
Хочу запускать lua скрипт в виде бинарника на любой системе
скрипт одним файлом только? и плагнируется ли потом добавление нескольких файлов?
Напиши ма-а-аленькую программку на сишечке, которая будет искать файлик main.lua рядом с собой и запускать. Получишь возможность редактировать.
что ты подразумеваешь под "на любой системе"?
вообще да, лучше просто раннер скрипта сделать, чем потом заниматься перекомпиляцией. + если захочешь добавить дополнительные скрипты и файлы не надо будет мучаться со всякими vfs, путь даже в виде архива. У меня так-то есть применение подобного, но часть vfs запилена в один проект, для хранения ассетов в бинаре, а луашка сама только лишь немного участвует в процессе сборки архива, не более. Да и код под gpl, это наврятли будет то, что ты хочешь 😁 И да кстати, повторюсь, что ты хочешь сделать-то? Я понял, что ты хочешь упаковать скрипт, а что это за скрипт и почему его надо упаковывать?
Винлокер запускать на системе без lua.
тьфу, я на секунду подумал, что это автор сообщеня написал 😂
хз чего ты молчишь... Крч, вот тебе пример того, что предложил снус : раннер, который выполняет скрипт main.lua, лежащий рядом с exeшником. Бинарь прилагается, однако крайне рекомендую скомпилировать самостоятельно, запускать бинарники от посторонних людей - такое себе 😁 за тем как скомпилировать - обращайся к документации своего си компилятора (если таковой есть). луашка используется minilua(упакованные исходники оригинальные в один заголовочный файл си кода), поэтому никаких библиотек дополнительно линковать не надо. Версия lua - 5.4.4 (P.S: тебе же под винду надо, да? в любом случае, под другие системы раннер тоже компилируется нормально P.P.S: компилятор TCC не бери для этого, не надо, я проверил, оно весьма медленно выходит 😁)
😁😁😁, спасибо большое, мне это надо просто чтобы убедится, что если мне надо будет исполнить скрипт луа на другом пк с голой ОС, я смогу это сделать без установки дополнительных либ, типа просто перекинул бинарь, выполнил и он отработал без проблем.
Обсуждают сегодня