簡體   English   中英

mruby:生成可讀的C代碼

[英]mruby: generating readable c code

我從mruby開始,我需要使用mrbc生成可讀的.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代碼的字節代碼。

如果您在Readable C Code(.c)部分下查看博客m,則它實際上應該已經生成了c代碼。

為什么MRBC無法生成可讀的C代碼?

為什么MRBC無法生成可讀的C代碼?

好吧, mrbc是RiteVM理解的用於生成紅寶石代碼二進制格式的編譯器,因此無法生成可讀的C代碼。

而是使用-v選項,您可以看到代碼的AST和VM代碼(我也更喜歡傳遞-c選項,因為mrbc會生成*.mrb文件而沒有它)。

暫無
暫無

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

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