mruby-require 错误:NoMethodError:主要的未定义方法“puts”

Posted

技术标签:

【中文标题】mruby-require 错误:NoMethodError:主要的未定义方法“puts”【英文标题】:mruby-require error: NoMethodError: undefined method 'puts' for main 【发布时间】:2015-09-17 09:25:12 【问题描述】:

我设法编译了 mruby 代码,添加了来自 https://github.com/mattn/mruby-require 的 mrubygem - mruby-require

但是,当我尝试调用 require './' 时出现错误。以下是我的代码:

inc.rb

def test(a, b)
    print "Inside the include->test(..)"
    return a+b
end

test1.rb

require 'inc.rb'

def helloworld(var1)
    print 'hello world ' + var1 + ". Test number = " + test(4, 5)

end

helloworld('test')

当我执行 test1.rb 时,我从 mruby 收到此错误:

NoMethodError: undefined method 'puts' for main

经过一些分析,我发现“puts”不适用于 mruby。事实上,在添加 mruby-require gem 之后,没有 ruby​​ 代码被执行。我是否需要使用 mruby-require 添加任何依赖项?

有人可以帮帮我吗?

更新:根据要求粘贴 build_config.rb 的内容。我已经删除了注释的行。

build_config.rb

MRuby::Build.new do |conf|

  if ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR']
    toolchain :visualcpp
  else
    toolchain :gcc
  end

  enable_debug

  # adding the mruby-require library
  conf.gem 'mrbgems/mruby-require'

  conf.gembox 'default'


end

MRuby::Build.new('host-debug') do |conf|

  if ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR']
    toolchain :visualcpp
  else
    toolchain :gcc
  end

  enable_debug

  conf.gembox 'default'


  conf.cc.defines = %w(ENABLE_DEBUG)


  conf.gem :core => "mruby-bin-debugger"


end

【问题讨论】:

@cremno 谢谢。这是我在 build_config.rb conf.gem 'mrbgems/mruby-require' 中添加的唯一一行。如果您希望我粘贴 build_config.rb 的完整内容,请告诉我,将其粘贴到问题部分。 @cremno,我已经更新了问题,粘贴了build_config.rb的内容。我已删除注释行以使内容可读。 【参考方案1】:

以下引用来自其README.md

使用 mruby-require 时,必须使用 build_config.rb 中 mruby-require 之后出现的其他 mrbgems。

这是来自您的build_config.rb

  conf.gem 'mrbgems/mruby-require'

  conf.gembox 'default'

The default gembox contains mruby-print。所以要么需要mruby-print,要么最好交换行以使其成为内置gem(没有mruby-require的默认行为)。

【讨论】:

以上是关于mruby-require 错误:NoMethodError:主要的未定义方法“puts”的主要内容,如果未能解决你的问题,请参考以下文章

[Javascript] Functor Basic Intro

将字符串转换为数组后从字符串中删除特定项目

附加到片段的片段对话框不调用 onYes/No 方法

有没有办法在 Perl 中重载正则表达式绑定运算符 `=~`?

远程服务器返回错误: 404错误远程服务器返回错误:500错误 HttpWebResponse远程服务器返回错误:(404500) 错误。

Pig 安装错误:错误 pig.Main:错误 2998:未处理的内部错误