わたなべです。 Mitsuo Igarashi <mitsu5 / ruby.famille.ne.jp> writes: > ruby-1.8.0 を gcc -mno-cygwin でビルドしようとしましたが > うまくいきません。 > > 環境は > cygwin version 1.3.15-2 > Windows XP professional > > cygwin で -mno-cygwin にしなければビルドは成功します。 たぶんcygwinでmakeしたままでmake distcleanしてないんだと思います。 > % CC='gcc -mno-cygwin' CFLAGS='-O2 ' ./configure --enable-shared --target=i386-mingw32 > にて、configure して、make しますと、 > > >compiling dl > >make[1]: 入ります ディレクトリ `/ruby18/ext/dl' > >gcc -mno-cygwin -DIMPORT -g -O2 -fno-defer-pop -fno-omit-frame-pointer -I. ->IF:/cygwin/ruby18 -IF:/cygwin/ruby18 -IF:/cygwin/ruby18/ext/dl -DHAVE_DLFCN_H ->I. -c dl.c CFLAGS='-O2 'と指定してるわりには-gがついていて矛盾しますが、 何度かconfigureし直してますか? > configure 中に、 > cygwin gcc では、 > checking for dlopen in -ldl... yes > checking for dlopen... yes > となっていますが、 > > cygwin gcc -mno-cygwin では > checking for dlopen in -ldl... no > checking for dlopen... no > と変わっています。 > > 原因はこれかなと思うのですが、処理方法が分かりません。 make distclean-extしてからmakeしなおしてみましょう。 最初から別の作業ディレクトリでconfigureする方法もあります。 % mkdir mingw.obj % cd mingw.obj % ../configure --with-gcc='gcc -mno-cygwin' CFLAGS=-O2 1.8では、CCがgcc -mno-cygwinなら勝手にtargetはi386-mingw32 になり、targetがcygwin/mignw32のときはdefaultで--enable-shared になります。 -- わたなべひろふみ