Ruby需要错误的参数类型错误

时间:2014-01-03 04:11:39

标签: c++ ruby typeerror ruby-c-extension

我在c ++中实现了ruby扩展。它汇编了。但是当我需要我在ruby测试中实现的模块时,它会显示错误。我创建类似的小模块,并在ruby代码中需要相同的方式。它工作正常。我无法弄清楚问题是什么。请帮我。 谢谢。

这是我的代码。

extconf.rb

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

Rgraph.cpp

     /*relevant methods here*/
     extern "C" void Init_Graph(){
     /* create Graph module */
     Mgraph = rb_define_module("Graph");
     Rgraphbase = rb_define_class_under(Mgraph,"GraphBase",rb_cObject);
     rb_define_alloc_func(Rgraphbase,alloc_ldgb_ob);
     /* some ruby define methods */

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>'

请帮我解决这个问题。感谢。

0 个答案:

没有答案