Ruby使用C++扩展实例(含C++扩展代码示例)

 更新时间:2014年09月10日 14:48:19   投稿:junjie  
这篇文章主要介绍了Ruby使用C++扩展实例,含C++扩展实现代码,本文可作为Ruby中使用C++扩展的入门教程,需要的朋友可以参考下

早年写过用C++ + SWIG写Ruby插件的文,但实际中还是以原生C++写Ruby扩展,因为也相当简单。但长久没用还是会忘记,不得不翻以前的老代码回忆,写下这篇博文,若下次再忘记,也不至于去翻仓库。

建立 extconf.rb

复制代码 代码如下:

require 'mkmf'

$libs = '-lstdc++'
create_makefile 'foo'


建立 foo.cc
复制代码 代码如下:

#include <ruby.h>

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);
}


生成扩展 foo.so
复制代码 代码如下:

$ ruby extconf.rb
$ make
# 如果要安装至site-ruby
$ make site-install

测试文件 test.rb
复制代码 代码如下:

require 'foo.so'

puts Foo.plus(3,4)
$ ruby test.rb
7

相关文章

  • ruby声明式语法的实现例子

    ruby声明式语法的实现例子

    这篇文章主要介绍了ruby声明式语法的实现例子,声明式编程是一种编程范型,与命令式编程相对立,需要的朋友可以参考下
    2014-11-11
  • Ruby实现的一个强大的批量删除文件脚本分享

    Ruby实现的一个强大的批量删除文件脚本分享

    这篇文章主要介绍了Ruby实现的一个强大的批量删除文件脚本分享,本文脚本实现对指定目录下的文件根据最后修改时间删除文件,需要的朋友可以参考下
    2015-01-01
  • win10下使用virtualbox + vagrant配置ruby开发机环境

    win10下使用virtualbox + vagrant配置ruby开发机环境

    Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。搭配Cmder如丝般顺滑,实现你所有关于Mac&Linux的幻想
    2017-08-08
  • Ruby中的return、break、next详解

    Ruby中的return、break、next详解

    这篇文章主要介绍了Ruby中的return、break、next详解,这三个关键字一般都用来作为语句中断或返回功能,本文就详细介绍了相关内容,需要的朋友可以参考下
    2015-05-05
  • Ruby on Rails中jquery_ujs组件拖慢速度的问题解决

    Ruby on Rails中jquery_ujs组件拖慢速度的问题解决

    这篇文章主要介绍了Ruby on Rails中jquery ujs组件拖慢速度的问题解决,jquery_ujs是Rails框架中涉及AJAX交互的组件,需要的朋友可以参考下
    2015-11-11
  • 安装Ruby和安装Rails详细步骤详解

    安装Ruby和安装Rails详细步骤详解

    这篇文章主要介绍了安装Ruby和安装Rails详细步骤详解,包括解决rbenv安装慢,更新rbenv的ruby版本列表,多版本ruby共存,需要的朋友可以参考下
    2022-04-04
  • Ruby入门介绍

    Ruby入门介绍

    Ruby入门介绍...
    2007-10-10
  • 详解Ruby中的代码块及其参数传递

    详解Ruby中的代码块及其参数传递

    block代码块基本上是开始学习Ruby后的第一个坎,接下来就带大家详解Ruby中的代码块及其参数传递,需要的朋友可以参考下
    2016-05-05
  • Ruby使用Mysql2连接操作MySQL

    Ruby使用Mysql2连接操作MySQL

    这篇文章主要介绍了Ruby使用Mysql2连接操作MySQL,需要的朋友可以参考下
    2022-04-04
  • Ruby的基本语法学习总结

    Ruby的基本语法学习总结

    这篇文章主要介绍了Ruby的基本语法学习总结,本文讲解了Ruby中的关键字、注释、数据类型、赋值和条件运算、输出和输入、条件判断语句、循环语句等内容,需要的朋友可以参考下
    2014-11-11

最新评论