[#37021] [RAA] RAA/2.3 — "U.Nakamura" <usa@...>

みなさんこんにちは。

20 messages 2003/01/30

[ruby-list:37007] Re: ruby-1.8.0 mingw build 失敗

From: WATANABE Hirofumi <eban@...>
Date: 2003-01-27 16:18:23 UTC
List: ruby-list #37007
わたなべです。

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
になります。

-- 
わたなべひろふみ

In This Thread