RbConfig::CONFIG['DLEXT']
RbConfig::CONFIG['DLEXT2']
DLL has been for historical reasons, but was renamed to .so to avoid
the clash with system libraries named similar and using dlopen on
them.
ruby -rrbconfig -ve "puts RbConfig::CONFIG['DLEXT']; puts
RbConfig::CONFIG['DLEXT2']"
ruby 1.8.7 (2010-06-23 patchlevel 299) [i386-mingw32]
so
dll
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]
so
It has been deprecated in 1.9. so .so is the only extension supported.
FYI: Python uses .pyd, not DLL.
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
You will need to provide a resource file (.res), preferable a .rc file
to be compiled by windres
I believe it will not automatically do it for you, as most of the
times the extensions are not normally accessible to users (in a way
that you don't browse your gem/extension folder and move files around.
Maybe rename them .dll then back to .so?
In 1.8 it will actually take both extensions, in 1.9 only .so...
-r
Yes, they are, but it's purpose is Ruby specific, like ".pyd" are DLLs
for Python extensions.
And no, Ruby-extensions are not general purpose DLLs that you can push
into system32 (and you shouldn't be doing that, btw).
The extension .so is used to avoid "sqlite3.dll" be loaded instead of
"sqlite3.so", Old versions of sqlite3-ruby suffered from this, I
renamed the extension to sqlite3_native to avoid that.
> Regardless, I am speaking about the .so files distro'd with Ruby, and
> not those that I create. It would be nice to know (or be able to
> interogate,) both .so and .rb files for Version and Release Date. I
> see many of the pure Ruby library files that have no Revision stated
> within them (comments) or a Revision object (Constant or some data
> class, such as a Struct.)
>
Well, there is no mechanism, and isn't supposed to interrogate those
directly but instead through ruby.