Noriaki Haradaさんの<199909221706.CAA29318 / p2232.nsk.ne.jp>から >この度、うちの BeOS R4.5.2(Intel) が入っているマシンに ruby-1.4.2 を >導入しようとしたのですが、どうもうまく行かないので、以下にその経緯を >書かせて頂きます。(長文です、御注意を) >が、今度は「~.so」形式のライブラリをロードしようとすると、例えば > >---- ここから ---- >xterm@rtype:/boot/home/TMP/ruby-1.4.2/sample/>ruby from.rb >/boot/home/config/lib/ruby/1.4/kconv.rb:1:in `require': Failed to load /boot/home/config/lib/ruby/1.4/i586-beos/nkf.so (LoadError) > from /boot/home/config/lib/ruby/1.4/kconv.rb:1 > from from.rb:4:in `require' > from from.rb:4 >xterm@rtype:/boot/home/TMP/ruby-1.4.2/sample/>ls -l /boot/home/config/lib/ruby/1.4/i586-beos/nkf.so >-r-xr-xr-x 1 baron users 1433208 Sep 23 01:07 /boot/home/config/lib/ruby/1.4/i586-beos/nkf.so >---- ここまで ---- 同じ事象になったので調べてみました。 nkf.soをロードしているところ(load_add_on())で、B_MISSING_SYMBOLという エラーが帰ってきています。 ext/nkf/nkf.c の Init_nkf() の前に、 __declspec(dllexport) void Init_nkf(); という行を追加したら、動的リンクで動作するようになりました。 ほかのライブラリも同じパターンでいけると思いますが、これしか試していま せん。 -- NTTデータ COEシステム本部 分散開発管理 森田 淳/Atsushi Morita moritaa / coe.nttdata.co.jp