[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001783] Re: GTK対応 RubyDCL



西澤です。

適当なことをいってすいません。

ソースを眺めながら思い出しました。
gtk対応の場合 ruby-dcl は ruby-gtk に依存します。
具体的には
zgsdrw, zgspmp
の2つです。
これらは自分で GtkDrawingArea, GdkPixmax を設定するための関数です。
おまかせでする場合には要りませんが、
GAVEの様に自分で描画用の窓を用意してやる場合に必要です。


On Wed, 30 Jun 2004 14:23:02 +0900
KOSHIRO Tsuyoshi <koshiro@xxxxxxxxxxxxxx> wrote:

> 神代です.
> 
> > たぶん要らないような気がします。
> 
> 実際にそのオプションを外して make したところ,
> 
> grph1_zgpack.o(.text+0xd): In function `dcl_zgsdrw':
> /home/koshiro/tmp/ruby-dcl-1.4.0/grph1_zgpack.c:73: undefined reference to `_rbgobj_instance_from_ruby_object'
> grph1_zgpack.o(.text+0x2f): In function `dcl_zgspmp':
> /home/koshiro/tmp/ruby-dcl-1.4.0/grph1_zgpack.c:85: undefined reference to `_rbgobj_instance_from_ruby_object'
> collect2: ld returned 1 exit status
> make: *** [dcl_raw.so] Error 1
> 
> というエラーが出ました.つけるとエラーなく終了します.
> dcl_zgsdrw, dcl_zgspmp で ruby-glib2 に依存している部分はないですか?
> 
> そうであれば一括インストーラでインストールの順番が変わってきますので……
> 以前 RPM を作ったときも,その依存関係は定義してなかったと思いますので,
> 修正したほうがいいですよね.
> 
> 以下の extconf.rb の抜粋の
> 
> > if /cygwin|mingw/ =~ RUBY_PLATFORM
> >    have_library("narray") || raise("ERROR: narray library is not found")
> >    if gtkversion == "2"
> >      $LOCAL_LIBS += "- lruby-glib2"
> >    end
> > end
> 
> 2行目で libnarray.a の有無をチェックしているように,拡張ライブラリから
> 拡張ライブラリを呼ぶときは,Cygwin の場合は インポートライブラリをリン
> クしないといけません.Linuxとかの場合はそのまま *.so を実行時にリンク
> できるのでいらないです.
> いずれにしても ruby-glib2 がRubyDCL実行時に呼ばれているということです
> ので,(Cygwinに限らず) ruby-glib2 も narray と同様に RubyDCL 実行時に
> 必要だということになると思ったのですが.
> それとも,Cygwin だけなにか特別にそうなっているのでしょうか.
> なんだか Cygwin はバッドノウハウが多くて嫌ですね……

----------
Seiya Nishizawa
seiya@xxxxxxxxxxxxxxxxxx