我在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>'
请帮我解决这个问题。感谢。