rubyが好きなBOWユーザーの大橋です。

またBOW固有の話題で申し訳ありません。以前ご相談させていただいた、ruby
のcurses拡張モジュールがなんとかBOWでも動くようになったので、ご報告し
ます。

BOWでcurses拡張モジュールを組み込んでコンパイルしようとすると、次のエ
ラーがでます。

curses.c:163: Undefined symbol `_doupdate' referenced from text segment
curses.c:255: Undefined symbol `_flash' referenced from text segment
curses.c:356: Undefined symbol `_wgetnstr' referenced from text segment
curses.c:374: Undefined symbol `_winsdelln' referenced from text segment
curses.c:480: Undefined symbol `_wborder' referenced from text segment
curses.c:725: Undefined symbol `_wgetnstr' referenced from text segment
curses.c:749: Undefined symbol `_winsdelln' referenced from text segment

そこで、以下のように対応したところ、問題なくコンパイルできるようになり
ました。curses拡張モジュールの close_screen を使うとスクリプト終了時に
多少画面が乱れますが、サンプルのスクリプトも動作します。

_doupdate, _flash はわたなべさんのご指摘通り(わたなべさん、ありがとう
ございました。)、curses.c から削除しました。残りの5つのエラーは、
ncurses.h 事体を削除するとあっさりコンパイルできました。

ビギナーの素朴な疑問ですが、curses.h、ncurses.hとふたつの curses 関係
のヘッダファイルがあるのに、なぜライブラリは libcurses.aしかないのか。
エラーのでている関数はすべて ncurses.h の中にあるので、ncurses.h がな
ければ、コンパイルできるのではないのかと思ってやってみました。

拡張モジュールのコンパイルばかりに熱中して、肝心なruby事体の勉強がおる
すになっていました。過去ログの中に CSV のパージングをしているスクリプ
トがあったので、そのあたりからrubyの勉強を再開してみたいと思います。ま
た初歩的な質問をさせていただくことになると思いますので、よろしくお願い
します。

大橋弘靖 <hohasi / cb3.so-net.ne.jp>