2016-05-06 39 views
0

我以mruby開頭,並且需要使用mrbc生成可讀的.c代碼。我下面this articlemruby:生成可讀的c代碼

這是中提到:

$ mruby/bin/mrbc -Cinit_tester test_program.rb 

會產生test_program.c一些內容。

,但我的機器上,當我運行此命令時,它說:

mrbc:輸出文件應指定編譯多個文件

然後我試圖

$ mruby/bin/mrbc -Binit_tester test_program.rb 

這作品生成c文件,但其內容僅爲字節碼:

#include <stdint.h> 
const uint8_t init_tester[] = {0x45,0x54,0x49,0x52,0x30,0x30,0x30,0x33,0x73,0x0d,0x00,0x00,0x00,0x65,0x4d,0x41,0x54,0x5a,0x30,0x30,0x30,0x30,0x49,0x52,0x45,0x50,0x00,0x00,0x00,0x47,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x3f,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x06,0x00,0x80,0x00,0x3d,0x00,0x00,0x01,0xa0,0x00,0x80,0x00,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x0b,0x68,0x65,0x6c,0x6c,0x6f,0x20,0x77,0x6f,0x72,0x6c,0x64,0x00,0x00,0x00,0x01,0x00,0x04,0x70,0x75,0x74,0x73,0x00,0x45,0x4e,0x44,0x00,0x00,0x00,0x00,0x08, }; 

這基本上是我們用c代碼放置的mruby代碼的字節碼。

如果您看看博客m下的可讀C代碼(.c),則應該實際生成c代碼。

爲什麼mrbc不生成可讀的c代碼?

+0

該頁面上的示例未由文檔中的選項備份:http://mruby.org/docs/articles/executing-ruby-code-with-mruby.html –

回答

0

爲什麼mrbc沒有生成可讀的c代碼?

那麼,mrbc是一個編譯器,用RiteVM理解生成ruby代碼的二進制格式,所以沒有辦法生成可讀的C代碼。

而是與-v選項,你可以看到你的代碼 的AST和VM代碼(我更喜歡通過-c選項太多,因爲mrbc會產生*.mrb文件沒有它)。