欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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開發(fā)機環(huán)境

    win10下使用virtualbox + vagrant配置ruby開發(fā)機環(huán)境

    Vagrant是一個基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。它 使用Oracle的開源VirtualBox虛擬化系統,使用 Chef創(chuàng)建自動化虛擬環(huán)境。搭配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中的關鍵字、注釋、數據類型、賦值和條件運算、輸出和輸入、條件判斷語句、循環(huán)語句等內容,需要的朋友可以參考下
    2014-11-11

最新評論