From: IWATSUKI Hiroyuki Date: 2000-06-28T01:16:12+09:00 Subject: [ruby-list:23558] ruby-1.4.5 GNUmakefile 岩月と申します。 ruby-1.4.5.tar.gz を入手しまして、Cygwin 1.1.2 上でコンパイルしたとこ ろ、rubycw.dll 作成時にエラーが出ました。 dllwrap --export-all -s -o rubycw.dll --output-lib=libruby.a --dllname=rubycw.dll -Wl,-e,__cygwin_noncygwin_dll_entry@12 --add-stdcall-alias array.o bignum.o class.o compar.o dir.o dln.o enum.o error.o eval.o file.o gc.o hash.o inits.o io.o marshal.o math.o numeric.o object.o pack.o parse.o process.o prec.o random.o range.o re.o regex.o ruby.o signal.o sprintf.o st.o string.o struct.o time.o util.o variable.o version.o flock.o strftime.o dmyext.o Warning: no export definition file provided dllwrap will create one, but may not be what you want string.o: In function `rb_str_crypt': /home/don/src/ruby-1.4.5/string.c:2477: undefined reference to `crypt' collect2: ld returned 1 exit status dllwrap: gcc exited with status 1 make: *** [rubycw.dll] Error 1 私の環境には Cygwin の一部として配布されている crypt-1.0.tar.gz をイン ストールしてありまして、configure がそれを見つけてくれますが、 GNUmakefile 内では $(LIBS) が参照されていませんので libcrypt.a がリン クされず(?)エラーになってしまった、と私は判断しました。なお、Makefile には LIBS = -lcrypt $(EXTLIBS) とありましたので、dllwrap に $(LIBS) を使うように修正して問題を回避し ましたが、問題ありますでしょうか? 以上です。 --- cygwin/GNUmakefile.in~ Wed Jun 28 01:08:58 2000 +++ cygwin/GNUmakefile.in Wed Jun 28 01:08:08 2000 @@ -5,4 +5,4 @@ miniruby$(EXEEXT): $(RUBYCWDLL) $(RUBYCWDLL): $(OBJS) dmyext.o - $(LDSHARED) $(DLDFLAGS) -o $(RUBYCWDLL) --output-lib=$(LIBRUBY_SO) --dllname=$(RUBYCWDLL) -Wl,-e,__cygwin_noncygwin_dll_entry@12 --add-stdcall-alias $(OBJS) dmyext.o + $(LDSHARED) $(DLDFLAGS) -o $(RUBYCWDLL) --output-lib=$(LIBRUBY_SO) --dllname=$(RUBYCWDLL) -Wl,-e,__cygwin_noncygwin_dll_entry@12 --add-stdcall-alias $(OBJS) dmyext.o $(LIBS)