Jan 13, 2008


ruby-opengl 0.60.0 : セットアップに再挑戦

追記: 以下の内容は古くなっています。こちらが役に立つかもしれません
VC++ 2008 版の Ruby 1.9.0 ができたので、ruby-opengl 0.60.0 のインストール。
  • GLUTのヘッダ・ライブラリは Windows SDK や Platform SDK で使える場所に配置しておきます。
  • rake や mkrf を最新版にしておきます。mkrf の 0.2.3 は Ruby 1.9.0 対応済みのバージョンです。
  > gem install mkrf
  Successfully installed mkrf-0.2.3
  1 gem installed
  Installing ri documentation for mkrf-0.2.3...
  Installing RDoc documentation for mkrf-0.2.3...
いきなり gem install ruby-opengl とやってしまうと、Ruby 1.8 版のバイナリがインストールされてしまうので注意。ソースアーカイブをいただいてきて作業します。
> wget http://rubyforge.org/frs/download.php/30282/ruby-opengl-0.60.0.gem
...
> gem install ruby-opengl-0.60.0.gem
  Building native extensions.  This could take a while...
  Successfully installed ruby-opengl-0.60.0
  1 gem installed
ではさっそく!
> ruby d:\ruby19\lib\ruby\gems\1.9.0\gems\ruby-opengl-0.60.0\examples\RedBook\teapots.rb

---------------------------
ruby.exe - コンポーネントが見つかりません
---------------------------
MSVCR90.dll が見つからなかったため、
このアプリケーションを開始できませんでした。
アプリケーションをインストールし直すとこの問題は解決される場合があります。
---------------------------
OK   
---------------------------
あらら。
案の定、できあがった各種 DLL にはマニフェストが埋め込まれていませんでした。というわけで後は手作業で、
  • gl.so
  • glu.so
  • glut.so
にマニフェストファイルを埋め込みます。ビルド時の中間ファイルがすべて残っているので、
> cd d:\ruby19\lib\ruby\gems\1.9.0\gems\ruby-opengl-0.60.0\ext\gl
> mt -manifest gl.so.manifest -outputresource:gl.so;2
> cd ..\glu
> mt -manifest glu.so.manifest -outputresource:glu.so;2
> cd ..\glut
> mt -manifest glut.so.manifest -outputresource:glut.so;2
> cd ..\..
> rake
  d:\ruby19\lib\ruby\gems\1.9.0\gems\ruby-opengl-0.60.0>rake
  (in d:/ruby19/lib/ruby/gems/1.9.0/gems/ruby-opengl-0.60.0)
  ruby mkrf_conf.rb
  call rake --nosearch
  (in d:/ruby19/lib/ruby/gems/1.9.0/gems/ruby-opengl-0.60.0/ext/gl)
  copy gl.so ..\..\lib
          1 個のファイルをコピーしました。
  ruby mkrf_conf.rb
  call rake --nosearch
  (in d:/ruby19/lib/ruby/gems/1.9.0/gems/ruby-opengl-0.60.0/ext/glu)
  copy glu.so ..\..\lib
          1 個のファイルをコピーしました。
  ruby mkrf_conf.rb
  call rake --nosearch
  (in d:/ruby19/lib/ruby/gems/1.9.0/gems/ruby-opengl-0.60.0/ext/glut)
  copy glut.so ..\..\lib
          1 個のファイルをコピーしました。
今度こそ!
> ruby d:\ruby19\lib\ruby\gems\1.9.0\gems\ruby-opengl-0.60.0\examples\RedBook\teapots.rb

うまく実行できました。