From: WATANABE Hirofumi Date: 2000-04-15T19:06:39+09:00 Subject: [ruby-list:21917] Re: mod_ruby から拡張モジュールがロードできない わたなべです. Norihito Shinzan (Jun Kabbalah) writes: : mod_ruby 内から拡張モジュールを呼ぼうとすると、 : :/usr/libexec/ld-elf.so.1: :/usr/local/lib/ruby/1.4/i386-freebsdelf3.4/nkf.so: Undefined symbol "rb_define_module" : : なんてエラーが httpd のエラーログに残ります(これは nkf の場合)。拡張モ :ジュール側から libruby を見つけられないのが原因のようなので、試しに :Apache に libruby をリンクしてみたりしたのですが、効果はありませんでした。 FreeBSD 4.0 でも再現しました. ./configure --enable-shared した場合拡張ライブラリにも -lruby が 必要ですね. それには拡張ライブラリを make する前に libruby.so を作っておく必 要もあって, 結局 cygwin や beos のような処理にしなきゃいけない. でも ext/extmk.rb で PLATFORM 別の処理を増やしたくないので, --enable-shared のときは o libruby.so を先に作るようにする. o 拡張ライブラリ側も -lruby がつくようにする. という処理にしたほうがいいと思います. #-lruby は必ずつけても問題ないよね? つづきは ruby-dev ML で. あ, とりあえずはできあがった ext/*/Makefile の LIBS を LIBS = -L../.. -lruby -lc に変更してください. -- わたなべひろふみ