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
有没有办法在 Perl 中重载正则表达式绑定运算符 `=~`?
远程服务器返回错误: 404错误远程服务器返回错误:500错误 HttpWebResponse远程服务器返回错误:(404500) 错误。