C mruby中的最小静态编译

C mruby中的最小静态编译,c,static,compilation,mruby,C,Static,Compilation,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(mr

我有一个简单的例子:

#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;
}
#包括“mruby.h”
#包括
int main()
{
mrb_int i;
mrb_值c;
mrb_状态*mrb=mrb_打开();
char kod[]=“def suma(a,b)(a+b).to_i end”;
如果(!mrb){/*问题*/}
mrb_加载_字符串(mrb,kod);

对于(i=0;i您必须在mruby源目录中运行rake。您必须在build/host/lib目录中生成libmruby.a。(在specyfic体系结构中)

接下来,使用-I选项编译程序,并使用指定给链接器的-lmruby链接程序


不可能像lua那样进行正常的静态编辑在编辑中我部分猜测了你的意思,语法和拼写错误使你很难理解你写的内容。