早年写过用c++ + swig写ruby插件的文,但实际中还是以原生c++写ruby扩展,因为也相当简单。但长久没用还是会忘记,不得不翻以前的老代码回忆,写下这篇博文,若下次再忘记,也不至于去翻仓库。
建立 extconf.rb
$libs = '-lstdc++'
create_makefile 'foo'
value plus(value self, value va, value vb)
{
int a = num2int(va);
int b = num2int(vb);
return int2num(a+b);
}
extern "c" void init_foo()
{
value foo = rb_define_module("foo");
rb_define_module_function(foo, "plus", ruby_method_func(plus), 2);
}
puts foo.plus(3,4)
$ ruby test.rb
7
如对本文有疑问, 点击进行留言回复!!
自动化部署Ruby on Rails应用(docker + jenkins)
网友评论