From: "堀川 久" Date: 2002-12-29T15:03:17+09:00 Subject: [ruby-list:36870] Re: Cygwinで拡張モジュールが生成されない こんにちは。 WATANABE Hirofumi wrote in <20021224002124.458909.eban@os.rim.or.jp> >> Rubyインタプリタをコンパイルすると, >> curses, dbm, digest >> しか拡張モジュールが作られないのですが,何が不味いのでしょうか。 > >configure時のオプションは? >それとgccのversionは? >他のライブラリに依存しないetc,fcntl,nkf等もだめですか? Cygwinを更新して再び試しました。 $ uname -a CYGWIN_NT-5.1 GRAPE 1.3.18(0.69/3/2) 2002-12-25 15:37 i686 unknown $ gcc --version gcc (GCC) 3.2 20020927 (prerelease) configureのオプションは, ./configure --enable-shared extmk.logの内容は, gcc -E -I/src/ruby/ruby -I/src/ruby/ruby -g -O2 conftest.c gcc -o conftest -I/src/ruby/ruby -I/src/ruby/ruby -g -O2 -Wl,--stack,0x02000000 -L${prefix}/lib conftest.c -ldb1 -ldb2 -ldb -lcrypt /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: cannot find -ldb1 collect2: ld returned 1 exit status gcc -E -I/src/ruby/ruby -I/src/ruby/ruby -g -O2 conftest.c (中略) gcc -E -I/src/ruby/ruby -I/src/ruby/ruby -g -O2 conftest.c gcc -o conftest -I/src/ruby/ruby -I/src/ruby/ruby -g -O2 -Wl,--stack,0x02000000 -L${prefix}/lib conftest.c -ldbm -ldb1 -ldb2 -ldb -lcrypt /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: cannot find -ldbm collect2: ld returned 1 exit status gcc -E -I/src/ruby/ruby -I/src/ruby/ruby -g -O2 conftest.c gcc -o conftest -I/src/ruby/ruby -I/src/ruby/ruby -g -O2 -Wl,--stack,0x02000000 -L${prefix}/lib conftest.c -lgdbm -ldbm -ldb1 -ldb2 -ldb -lcrypt /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: cannot find -ldbm collect2: ld returned 1 exit status gcc -E -I/src/ruby/ruby -I/src/ruby/ruby -g -O2 conftest.c libdb1, libdbmは,インストールされていませんでした。libdb2, libdb-3.1, libgdbmはインストールされています。 ext/socketに降りて, ruby -d extconf.rb すると,次のようになりました。 checking for netinet/udp.h... checking for inet_ntop()... no checking for inet_ntoa()... no checking for inet_pton()... no checking for inet_aton()... no checking for getservbyport()... no checking for arpa/inet.h... no checking for arpa/nameser.h... no checking for resolv.h... checking for sys/un.h... no checking for socket()... no mkmf.logの内容は, gcc -o conftest -I/usr/local/lib/ruby/1.6/i686-cygwin -g -O2 -Dss_family=__ss_family -Dss_len=__ss_len -Wl,--stack,0x02000000 conftest.c -lcrypt gcc -o conftest -I/usr/local/lib/ruby/1.6/i686-cygwin -g -O2 -Dss_family=__ss_family -Dss_len=__ss_len -Wl,--stack,0x02000000 conftest.c -lcrypt gcc -o conftest -I/usr/local/lib/ruby/1.6/i686-cygwin -g -O2 -Dss_family=__ss_family -Dss_len=__ss_len -Wl,--stack,0x02000000 conftest.c -lcrypt gcc -E -E -Dss_family=__ss_family -Dss_len=__ss_len -I/usr/local/lib/ruby/1.6/i686-cygwin -g -O2 conftest.c no gcc -o conftest -I/usr/local/lib/ruby/1.6/i686-cygwin -g -O2 -Dss_family=__ss_family -Dss_len=__ss_len -Wl,--stack,0x02000000 conftest.c -lcrypt 何がどうなっているんでしょうか。 -- HORIKAWA Hisashi (in Kanji: 堀川 久) Netsphere Laboratories http://www.nslabs.jp/