# File lib/ffi/library.rb, line 4 def ffi_lib(*names) ffi_libs = [] names.each do |name| [ name, FFI.map_library_name(name) ].each do |libname| begin lib = FFI::DynamicLibrary.open(libname, FFI::DynamicLibrary::RTLD_LAZY | FFI::DynamicLibrary::RTLD_GLOBAL) if lib ffi_libs << lib break end rescue LoadError => ex end end end raise LoadError, "Could not open any of [#{names.join(", ")}]" if ffi_libs.empty? @ffi_libs = ffi_libs end