Минимальная статическая компиляция в mruby
У меня есть простой пример:
#include "mruby.h"
#include <mruby/compile.h>
int main()
{
mrb_int i;
mrb_value c;
mrb_state *mrb = mrb_open();
char kod[] = "def suma(a,b) (a+b).to_i end";
if (!mrb) { /* problemy */ }
mrb_load_string(mrb, kod);
for(i=0; i<9; i++)
{
c = mrb_funcall(mrb, mrb_top_self(mrb), "suma", 2,
mrb_fixnum_value(i), mrb_fixnum_value(i));
}
mrb_close(mrb);
return 0;
}
Как я могу скомпилировать его в статическом режиме, без библиотеки libmruby.a
? Я только хочу добавить /src/*.c
файл (ы).
Мне не нужно Array
, Нет доступа к файлу, нет других драгоценных камней (time
, test
, sprintf
, random
, так далее.)
Какие файлы важны, а какие я могу пройти мимо? Мне не нужен компилятор гемов. Я могу запустить только байт-код, если это возможно.
Как я могу это сделать?
1 ответ
Решение
Вы должны запустить rake в директории с исходниками mruby. Вы будете производить libmruby.a в каталоге build/host/lib. (в специфической архитектуре)
Затем вы компилируете программу с параметром -I и связываете программу с параметром -lmruby, указанным для компоновщика.
Невозможно сделать нормальный статический как Луа