【问题标题】:mruby: generating readable c codemruby:生成可读的 c 代码
【发布时间】:2016-09-01 03:50:29
【问题描述】:

我从 mruby 开始,我需要一点使用 mrbc 生成可读的 .c 代码。我在关注this article

这里提到了:

$ 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 代码?

【问题讨论】:

标签: c mruby


【解决方案1】:

为什么 mrbc 不生成可读的 c 代码?

嗯,mrbc 是一个编译器,用于生成 RiteVM 理解的 ruby​​ 代码的二进制格式,因此无法生成可读的 C 代码。

使用-v 选项,您可以查看代码的 AST 和 VM 代码 (我也更喜欢传递-c 选项,因为没有它mrbc 将生成*.mrb 文件)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    相关资源
    最近更新 更多