Минимальная статическая компиляция в 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, указанным для компоновщика.

Невозможно сделать нормальный статический как Луа

Другие вопросы по тегам