From: daz Date: 2004-05-14T12:33:49+09:00 Subject: [OT] .dll / .so (was Re: popen3 on windows) Nobu wrote: > Hi, > > At Fri, 14 May 2004 05:51:45 +0900, > Joel VanderWerf wrote in [ruby-talk:100179]: > > I'm puzzlied, why does VC generate a .so instead of a .dll? Oh well, > > ruby seems to load it with no problem. > > Because nothing is prefixed to library files on Windows > traditionally, whereas "lib" for Unixes. For instance, iconv > extension library requires external DLL named iconv.dll in > common, it would introduce confusion if the ruby extension also > were have .dll suffix. > Mmm... sqlite-ruby uses the external sqlite.dll The extconf has: create_makefile( "_sqlite" ) and creates _sqlite.dll internal dll (BTW: actually _sqlite.so) In a script, we say -- require 'sqlite' ... Ruby finds sqlite.rb (one-liner) before .dll (or .so) which says: require '_sqlite' _sqlite.dll uses sqlite.dll OK. Link against _sqlite.lib or sqlite.lib OK ... no conflict ... everyone's happy. sqlite-ruby is built safely, avoiding conflict. It's slightly more tricky to set up, but it's invisible to the user. ========= With the new change, however, I can write a Ruby package called KERNEL32 or USER32 etc. Build will safely create KERNEL32.so and save me from trouble ;)) I distributed a dll made to run with Ruby 1.6 -> 1.9 on Windows only called ___.so and in the FAQ is: 1) "There's no dll in the zip file." 2) "What's this ___.so" thing ? ;-) But I don't have a problem with the new setup. It's in the Changelog, so I was able to find the information. daz