Ruby需要错误的参数类型错误 我在C++中实现Ruby扩展。它被编译了。但当我需要在ruby测试中实现的模块时,它会显示一个错误。我创建了类似的小模块,并在ruby代码中以同样的方式要求它。它很好用。我想不出是什么问题。请帮帮我。 多谢各位

Ruby需要错误的参数类型错误 我在C++中实现Ruby扩展。它被编译了。但当我需要在ruby测试中实现的模块时,它会显示一个错误。我创建了类似的小模块,并在ruby代码中以同样的方式要求它。它很好用。我想不出是什么问题。请帮帮我。 多谢各位,c++,ruby,typeerror,ruby-c-extension,C++,Ruby,Typeerror,Ruby C Extension,这是我的密码 extconf.rb require 'mkmf'; have_library( 'stdc++' ); $CFLAGS << " -Wall"; create_makefile( 'Graph' ); test.rb require 'rubygems' require '/home/kelum/workspace/myextension/ext/Rlgem/graph/Graph' incl

这是我的密码

extconf.rb

     require 'mkmf';
     have_library( 'stdc++' );
     $CFLAGS << " -Wall";
     create_makefile( 'Graph' ); 
test.rb

     require 'rubygems'
     require '/home/kelum/workspace/myextension/ext/Rlgem/graph/Graph' 
     include Graph
     puts "some test methods";  
我用这些命令编译了它

     ruby extconf.rb
     make
     ruby test.rb
但是当我执行ruby test.rb时,它显示了一个错误

    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': wrong argument type false (expected Class) (TypeError)
  from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
  from test.rb:2:in `<main>'

请帮我把这个修好。谢谢。

在Ruby中,你不能只需要从C++编译/链接创建的二进制。请参阅此主题,例如:try require\u relative。删除路径。确保模块位于同一目录中。@akonsu它显示相同的错误。test.rb:2:in require_relative:错误的参数类型false testRun中的预期类类型错误。rb:2:in'是否在同一目录中有Graph.so?它适合我,但我不需要'rubygems',然后我将使用Init_图并注释掉对rb_define的调用。。。直到它起作用,然后从那里开始。
    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': wrong argument type false (expected Class) (TypeError)
  from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
  from test.rb:2:in `<main>'