くまりゅう日記

もっと過去の日記
[.NET | BeOS | Blender | COLLADA | fossil | mono | monotone | NPR | OpenGL | PeerCastStation | Riko | Ruby | Silverlight | TRPG | XNA | ゲーム | ゲーム作り | ]

2010-12-09

_ 日記

rubyが落ちる。

1.9.2ブランチを使ってるんだけど、終了時にランタイムエラーで落ちる。でも普通のスクリプトを実行してもmake testしてもそんなことはない。俺の拡張ライブラリが悪いのかな。

gdbで実行してもひっかからない場所で落ちてるようなのでタチがわるい。終了時だけなんで気にしないっつー手もなくはないんだけどさすがに気持ち悪いしなー。

ベクトルとか行列とかぐらいしか入ってないrikomathのテストを動かしても落ちるってことはOpenGLとかDirectXがどうとかいう話でもないようだ。以前は落ちてなかったので思い当たるのはMinGW gccのバージョンか。さらに言うと俺の拡張ライブラリにあって標準の拡張ライブラリにないものはC++、つまりg++が怪しい。

あー、ただ読み込まれるだけの拡張ライブラリをC++で書いたらやっぱり落ちた。g++でリンクするとまずいようだ。

MinGW gccのリリースノートにlibgccとかlibstdc++なんかが動的リンクされるから都合悪い時は静的リンクにしろよとか書いてあったのを思い出したんだけどこれじゃねぇかなぁ。

$LDFLAGS += ' -static-libgcc'

をextconf.rbに書いてやったら何もしないC++拡張ライブラリが落ちなくなった。よかったこれだ。

libstdc++もダイナミックリンクされんぞとか書いてあるけどこっちはべつにstaticじゃなくても問題ないな。Cだとlibgccが標準で静的リンクらしいのでその辺のミスマッチなのかね。libstdc++もstaticにしとくかな。

しかしこれをextconf.rbに書くのもおかしいからrubyのconfigureする時から指定しておくのがいいんだろうなぁ。またrubyのビルドか。Atomマシンだとだいぶ時間かかるんだよね。

おっと、LDFLAGSに-static-libstdc++を指定したらさすがにgccにUnrecognize optionていわれまくる。うーん、まあ言われてるだけで通ってるからいいかな。

ところで拡張ライブラリにC++なソースを入れておくとg++でリンクしてくれるようにいつのまにかなってたんですね。以前はgccでリンクしようとしてくれてたんでgccの時はわざわざlibstdc++をリンクするように指定してたんだけどいらなくなった。mkmfはしれっと変わりまくるのでおそろしい。

_ [OpenGL] gDEBuggerが無料に

OpenGLデバッガ兼プロファイラのgDEBuggerさんがデスクトップOS向けは無料になったようです。

まだ無料版は出来てないんだけどそれまではライセンスファイル置いとくから使ってねとかなんとか。opengl.orgのコメントにもあるけどビジネスモデルが変わったって、どうなるんだろうな。あとWindows、Linux、MacOSX向けは無料になりますとか書いてあるけどモバイル版はどうなんだろ。モバイル版を売る会社になるのかな。

ともあれ、OpenGLをいじるならあるととても嬉しいけど7万円以上もして手が出なかったgDEBuggerが手に入るのは非常にうれしいところ。でもこれ商用利用はどうなんかね。

MacだったらOpenGL ProfilerがあるからべつにいらなかったんだけどWindowsでは是非とも入れておきたい。

無料ライセンスの使い方はWindowsでは、

  1. gDEBugger本体を落としてインストールする
  2. 元購入ページから無料ライセンスzipを落とす
  3. zipを展開、中身をどこか消さないような場所に置いておく
  4. zipから取り出したライセンスファイルをダブルクリックで開く
  5. OKを押す
  6. gDEBuggerを起動して体験版ライセンスを取得しようだのなんだの言われなきゃ完了

こんな感じでした。

なんかOpenGL ESのデバッグもできるみたいなので試そうとしたら、こっちは別ライセンスだった。バイナリは同一でライセンスが別なのね。

そのかわりOpenCLのデバッグはできそうだったよ。デバッグ対象がないからできなかったけど…。


ページのトップへ | トップ «前の日記(2010-12-07) 最新 次の日記(2010-12-15)» | 編集 | kumaryu.net by kumaryu