なかだです。

 Ruby/FLTKの最新版ですが、1.6、1.7ともにコンパイルできません。
RUBY_VERSION_CODEはversion.hをincludeしないと使えませんし、それ
にrb_hash_delete()が追加されたのは1.7.1の途中なのであまりよろし
くないのではないかと。RUBY_METHOD_FUNC()の方はまぁとりあえずこ
んなところで通るようになりますが、1.6だとC++のことは元々あんま
り考えてないので、どこかに無理があるかも知れません。


Index: extconf.rb =================================================================== RCS file: /cvsroot/ruby-fltk/ruby-fltk/extconf.rb,v retrieving revision 1.11 diff -u -2 -p -r1.11 extconf.rb --- extconf.rb 2001/09/12 08:21:04 1.11 +++ extconf.rb 2001/09/13 00:04:10 @@ -76,4 +76,6 @@ if( use_xunicode ) end +have_func("rb_hash_delete", "ruby.h") + if( have_fl_h && have_libfltk ) create_makefile("rubyfltk") Index: fltk.cc =================================================================== RCS file: /cvsroot/ruby-fltk/ruby-fltk/fltk.cc,v retrieving revision 1.49 diff -u -2 -p -r1.49 fltk.cc --- fltk.cc 2001/09/12 07:59:23 1.49 +++ fltk.cc 2001/09/13 00:04:10 @@ -48,5 +48,5 @@ ID rb_id_icallback_data; ID rb_id_call; -#if RUBY_VERSION_CODE < 171 +#ifndef HAVE_RB_HASH_DELETE extern "C" { typedef struct st_table_entry { Index: fltk.h =================================================================== RCS file: /cvsroot/ruby-fltk/ruby-fltk/fltk.h,v retrieving revision 1.57 diff -u -2 -p -r1.57 fltk.h --- fltk.h 2001/09/11 22:47:57 1.57 +++ fltk.h 2001/09/13 00:04:11 @@ -836,6 +836,11 @@ VALUE rb_fltk_##method(VALUE mod, VALUE return INT2NUM(ret); \ }; - + +/* old RUBY_METHOD_FUNC() definition doesn't match to prototypes in those days. */ +#ifndef ANYARGS +#undef RUBY_METHOD_FUNC +#define RUBY_METHOD_FUNC(func) ((VALUE (*)())func) +#endif /* wrappers for rb_define_{method,singleton_method,module_function} */
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦