Linking with C++ but getting runtime error


I have downloaded Ruby 2.0.0-p195 sources and built them on Windows
using MS VC++ (from VS2010). I am now linking my C++ program with one of
the static libraries produced by the build:

  • msvcr100-ruby200.lib (file size: approx 400KB)

The intention is to invoke Ruby scripts from C++ process.

Now, the linking itself is working fine but as soon as I try to run it,
the code tries to load

  • msvcr100-ruby200.dll

While this dll was also built as part of the build process I mentioned
at the start of this message, this particular dll doesn’t exist in a
binary installation of Ruby (from

The closest DLL I can find on users’ machine is

  • msvcrt-ruby200.dll

So, the question is, where does the msvcr100-ruby200.dll name came from?
What’s the name of the real DLL which I should expect to be available on
the user environment? And how I can rebuild Ruby static lib so that it
references the correct DLL at runtime?

Thanking in anticipation anyone who attempts to help me!


Ok, so I figured out that the Makefile generated by win32/configure.bat
contains some definitions, which can be changed. More specifically, the
RT define can be changed as follows:

RT = msvcrt

to get msvcrt-ruby200.dll instead of msvcr100-ruby200.dll.

But my question is that by default, why does it generate the file name
beginning with msvcr100… while the RubyInstaller contains the file