Msvcr*.dll

hi,

i’m trying to build a ruby extension in c on windows, using mingw32’s
gcc.

these are the two compile commands i use:

gcc -o tga.o tga.c -c -I c:/ruby/lib/ruby/1.8/i386-mswin32
gcc -shared -o tga.so tga.o
-Wl,c:/ruby/bin/msvcrt-ruby18.dll,c:/windows/system32/msvcrt.dll

everything compiles, with a few warnings, but tga.so is created. it has
also a valid Init_tga() function, because otherwise is just get “could
not find Init_tga()”.

however, when i try to require tga.so, i get an error that “msvcr80.dll”
is missing. my question is: how did the compiler link to that dll
anyway? i didnt mention it. anyways i’d like to know how to fix this
problem.

by the way, its the one-click-installer of ruby 1.8.6 and windows xp
home

-morris

Morris Brodersen wrote:

however, when i try to require tga.so, i get an error that “msvcr80.dll”
is missing.
i downloaded the msvcr80.dll somewhere and moved it into c:/windows.
this didnt fix the problem, i now get a runtime error “application is
trying to initialize a library incorrectly”.

btw, should i post this topic somewhere else? im new to ruby-forum. dont
know wether its the right category.

could it be that something in ruby.h is calling some function of any
msvcr*.dll?

well, i kind of fixed that problem… seems like the only thing i had to
do is to put tga.so into c:/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt/. it
just works.

if somebody knows why this is happening i’d be very grateful :slight_smile: because
i have other .so’s which are definitely not in there but work.

-morris

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs