From: WATANABE Hirofumi Date: 2008-02-24T22:57:03+09:00 Subject: [ruby-dev:33929] Re: --host=i586-mingw32msvc わたなべです。 Kouhei Sutou wrote: > --host=i586-mingw32msvcでconfigureしてmsvcrc-ruby190.dllをク > ロスコンパイルでビルドするためのパッチです。以下が成功するよ > うになります。 > > % ./configure --host=i586-mingw32msvc > % make msvcrt-ruby190.dll 今現在残念ながらそんな簡単な指定ではクロスコンパイルできません。 たぶん % ac_cv_func_getpgrp_void=no \ ac_cv_func_setpgrp_void=yes \ ac_cv_c_bigendian=no \ ac_cv_sizeof_long_long=8 \ ac_cv_func_memcmp_working=yes \ rb_cv_binary_elf=no \ rb_cv_negative_time_t=no \ ./configure \ --target=i386-mingw32 \ --host=i586-mingw32msvc \ --build=i386-linux \ ぐらいの設定が必要になります。rubyという名前で1.9が呼べない場合は さらに環境変数RUBYにruby-1.9とか--with-baseruby=ruby-1.9も必要です。 かなり面倒です。それでも現在のところ途中でエラーになりますが。 mkmf.rb can't find header files for ruby at /usr/local/lib/ruby/include/ruby.h > クロスコンパイルをしているとき、.rbの中からsystemやpopenなど > して外部プロセスを起動するとターゲットホスト上の環境で実行さ > れてしまうのでうまくないです。 実行してしまうのは--target, --host, --buildを 正しく設定してないからだと思います。 それとwineで実行できるようにしてるせいで 中途半端にうまくいってしまい余計まずいですね。