簡體   English   中英

mruby 中的最小靜態編譯

[英]Minimal static compilation in 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 沒有文件訪問權限,沒有其他 gem( timetestsprintfrandom等)

哪些文件很重要,哪些可以通過? 我不需要 gem 編譯器。 如果可能,我只能運行字節碼。

我怎樣才能做到這一點?

您必須在 mruby 源目錄中運行rake 您將在 build/host/lib 目錄中生成 libmruby.a。 (在特定架構中)

接下來,您使用-I 選項編譯您的程序,並使用指定給鏈接器的-lmruby鏈接您的程序。

不可能像lua一樣制作普通的靜態

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM