From: "助田 雅紀" Date: 1998-11-10T08:20:30+09:00 Subject: [ruby-dev:3576] Re: How to make extension module 助田です。 In [ruby-dev:3574] Re: How to make extension module >木村です。 >DLL作成と同じく、おざなりの出来でしかないmakefile/extconfに置き >換えてmakeするようになっているので、その辺に絡む問題だと思います。 木村さんの予想通りです。 extmk.rb.nt の if $static $extlibs = " " $extlibs += " " + $LDFLAGS if $LDFLAGS を if $static $extlibs = " " unless $extlibs $extlibs += " " + $LDFLAGS if $LDFLAGS にすれば、EXTLIBS に設定されるようになりました。 ですが、have_library が何でもかんでも TRUE を返すんで 存在しないライブラリもリンクしようとします。 LINK = "cl -o conftest.exe -Zi -O %s conftest.c %s > nul" を LINK = "cl -o conftest.exe -Zi -O %s conftest.c %s" に切り替えればちゃんと判定するようになります。 ところで have_library の第2引数で指定する関数は、引数を もたない関数でないと駄目なんですか? #Visual C++ の制限とか、Windows 95 の制限もありそうです。 #いままで拡張ライブラリはどうしてたかというと毎回手作業で #Makefile を必要に応じて書き換えてました。(^^; extmk.rb.nt の diff つけようかとも思ったのですが、まだ整理 できてない部分もあるので止めておきます。今回は報告だけ。 整理できたら diff つけます。 -------------------------------------------- 助田雅紀(masaki.suketa@systemplaza.co.jp) --------------------------------------------