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

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



神代です.

> たぶん要らないような気がします。

実際にそのオプションを外して 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 はバッドノウハウが多くて嫌ですね……