简体   繁体   中英

The procedure entry point fclose could not be located

I've recently built a Ruby C extension wrapping the library gorilla-audio. The library is simple enough, clean code, memory is accounted for, etc. However when I try to load the library into ruby it throws an error that reads:

The procedure entry point fclose could not be located in the dynamic link

library mscvrt-ruby191.dll.

I have included stdio.h in my source, as has gorilla-audio, not sure what is happening. Any ideas?

Could this be due to building my extension with mingw/msys but loading it into a windows application?

I found the answer in case another person gets something like this; actually, it's two answers:

  1. Don't cross compile, and
  2. I needed to link the msvcrt library, as it holds all the default functions like fclose() , etc.

However, it didn't matter, because I was cross compiling anyways; I'll have to convert Ruby headers and some of it's source to C++ to be able to make Ruby C extensions with Visual Studio.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM