Luajit: компиляция байт-кода в объектный формат

В руководстве Luajit по поводу опции -b говорится:

Тип выходного файла определяется автоматически по расширению имени выходного файла:

  • c — исходный файл C, экспортированные данные байт-кода.
  • h — заголовочный файл C, данные статического байт-кода.
  • obj или o — объектный файл, экспортированные данные байт-кода (зависящие от ОС и архитектуры).
  • raw или любое другое расширение — необработанный файл байт-кода (переносимый).

Что значит скомпилировать его в объектный файл? Я знаю, что он создает файл, который затем может быть связан с другими объектными файлами, созданными из кода C или C++.

Но как это работает? Как можно использовать сгенерированный объектный файл из другого кода C? И в какой ситуации вы бы это сделали?


person Klaufir    schedule 31.05.2013    source источник


Ответы (1)


Он встраивает байт-код модуля в постоянный массив.

Если вы затем экспортируете этот массив из исполняемого файла или общей библиотеки, require сможет найти его там (и, следовательно, не нужно искать .lua исходный файл).

person finnw    schedule 31.05.2013