Ruby1.9.1でopengl-0.32gをビルドする
Ruby1.9.1でRuby/SDLを動かそうと思ったら、やっぱりopengl.soをビルドしなきゃならないというわけで、そのときのメモ。
Rubyで動くOpenGLライブラリはこちらから取得。
http://www2.giganet.net/~yoshi/
opengl.soのビルドの方法はこちらを参照。
http://www.kmc.gr.jp/~ohai/diary/?date=20070305
"ruby extconf.rb"までは良かったが、"make opengl.so"すると、エラーが出るわ出るわ。
なんでかと思ったら、配列とかの参照が昔のまんま。つまり、↓のようなコードがたくさん有ったんです。
struct RArray *ary; : ary = RARRAY(arg); hoge = ary->ptr[0]; for(i=0; i<ary->len; i++){ : } fuga((VALUE)ary,...); hanya = RSTRING(str)->len;
うーん、こりゃ怒られるわ。
というわけで、上記コードを以下の様に修正することで、opengl.soファイルが出来上がりました。
VALUE ary; : ary = arg; // ホンマは要らないけどね・・・ hoge = RARRAY_PTR(ary)[0]; for(i=0; i<RARRAY_LEN(ary); i++){ : } fuga(ary,...); hanya = RSTRING_LEN(str);
これで、opengl.soは出来ますが、動作確認はしてないので、自己責任でお願いします・・・。
(もし修正方法が間違ってたら報告お願いします)*1。