Ruby拡張ライブラリを作成してみる

公開日: : Ruby

記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

昼休みにちょいとRuby拡張ライブラリを作成してみた。

sample.cを作成


#include <ruby.h>

VALUE gunyo(VALUE self, VALUE va, VALUE vb, VALUE vc){
VALUE r;
int a, b, c, d;

a = NUM2INT(va); b = NUM2INT(vb); c = NUM2INT(vc);
d = a + b + c;
r = INT2FIX(d);

return r;
}

void Init_Unyo(void){
VALUE rb_cHoge;

rb_cHoge = rb_define_class("Hoge", rb_cObject);

rb_define_method(rb_cHoge, "gunyo", gunyo, 3);
}

extconf.rbを作成


require "mkmf"
create_makefile("Unyo")

extconf.rbを実行


% ruby extconf.rb

Makefileが作成される。

makeを実行


% make

Unyo.bundleが作成される。


% file Unyo.bundle
Unyo.bundle: Mach-O bundle i386

hoge.rbを作成させる


require "Unyo.bundle"

hoge = Hoge.new
d = hoge.gunyo(1,2,3)
print d,"\n"

hoge.rbを実行する


% ruby hoge.rb
6

やった!!

関連記事

サンフランシスコのピア39にあるチャウダーズでクラムチャウダーを食す!

lolipop アップルの開発者向けイベント「WWDC2014」

ミスドのカルピスドーナツとカルピスポンデリングを食べてみた!

ミスドで期間限定のカルピスコラボ商品「カルピスドーナツ」と「カルピ

十三カレー計画で牛すじカレーネギのせを食す!(大阪・十三)

「iPhoneアプリ開発キャンプ@大阪」のランチで、十三カレー計画

大阪・難波の加寿屋 法善寺でかすうどんを食す。ランチタイムはおにぎり2個まで無料!

大阪・難波の加寿屋 法善寺 (かすうどん KASUYA)で、かす

ライブドアブログで運営していた「あきお商店」を「卵は世界である」に改名しました

少し前からライブドアブログで「あきお商店」というブログをやって

→もっと見る

PAGE TOP ↑