169 похожих чатов

Приветствую, подскажите можно ли скомпилировать луа скрипт в бинарный файл

который можно будет исполнять без луа интерпретатора?

14 ответов

28 просмотров

Можно скомпилировать луа-интерпретатор с вшитым скриптом, который он будет выполнять.

Создаешь байт-код из скрипта, преобразуешь его в массивчик внутри h файла и подключаешь к сишной проге своей, которая подгружает и инициализирует Lua машинку, которой потом через loadbuffer скармливаешь полученный массивчик

Можно 1) держать строку со скриптом и запустить свой интерпретатор для единственного сценария 2) Можно таскать байт-код 3) Можно написать сценарий на Си. Без интерпретатора буквально не получится, по сути каждый способ по своему таскает интерпретатор, т.к. луа - интерпретируемый язык, но насколько я понял вы не совсем в этом разбираетесь и под интерпретатором подразумеваете лишь интерактивную строку, без которой интерпретатор луа может работать, т.к. сам интерпретатор занимается только обработкой исходников на луа и их выполнением.

а что ты вообще хочешь сделать по итогу?

Drus- Автор вопроса
UtoECat
а что ты вообще хочешь сделать по итогу?

Хочу запускать lua скрипт в виде бинарника на любой системе

Drus
Хочу запускать lua скрипт в виде бинарника на любо...

скрипт одним файлом только? и плагнируется ли потом добавление нескольких файлов?

Drus
Хочу запускать lua скрипт в виде бинарника на любо...

Напиши ма-а-аленькую программку на сишечке, которая будет искать файлик main.lua рядом с собой и запускать. Получишь возможность редактировать.

Drus
Хочу запускать lua скрипт в виде бинарника на любо...

что ты подразумеваешь под "на любой системе"?

вообще да, лучше просто раннер скрипта сделать, чем потом заниматься перекомпиляцией. + если захочешь добавить дополнительные скрипты и файлы не надо будет мучаться со всякими vfs, путь даже в виде архива. У меня так-то есть применение подобного, но часть vfs запилена в один проект, для хранения ассетов в бинаре, а луашка сама только лишь немного участвует в процессе сборки архива, не более. Да и код под gpl, это наврятли будет то, что ты хочешь 😁 И да кстати, повторюсь, что ты хочешь сделать-то? Я понял, что ты хочешь упаковать скрипт, а что это за скрипт и почему его надо упаковывать?

Luсky Ook 💉4
Винлокер запускать на системе без lua.

тьфу, я на секунду подумал, что это автор сообщеня написал 😂

Drus
Хочу запускать lua скрипт в виде бинарника на любо...

хз чего ты молчишь... Крч, вот тебе пример того, что предложил снус : раннер, который выполняет скрипт main.lua, лежащий рядом с exeшником. Бинарь прилагается, однако крайне рекомендую скомпилировать самостоятельно, запускать бинарники от посторонних людей - такое себе 😁 за тем как скомпилировать - обращайся к документации своего си компилятора (если таковой есть). луашка используется minilua(упакованные исходники оригинальные в один заголовочный файл си кода), поэтому никаких библиотек дополнительно линковать не надо. Версия lua - 5.4.4 (P.S: тебе же под винду надо, да? в любом случае, под другие системы раннер тоже компилируется нормально P.P.S: компилятор TCC не бери для этого, не надо, я проверил, оно весьма медленно выходит 😁)

Drus- Автор вопроса
UtoECat
хз чего ты молчишь... Крч, вот тебе пример того, ...

😁😁😁, спасибо большое, мне это надо просто чтобы убедится, что если мне надо будет исполнить скрипт луа на другом пк с голой ОС, я смогу это сделать без установки дополнительных либ, типа просто перекинул бинарь, выполнил и он отработал без проблем.

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта