我使用游戏Dwarf Fortress中嵌入的Ruby解释器(它附带1.8.x,但我已经用1.9.3替换了DLL),并且我试图包含Roo库,所以我可以使用电子表格。
puts(RUBY_DESCRIPTION)
def addDir(libdir)
$LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
end
addDir('C:\dev\Ruby193\lib\ruby')
addDir('C:\dev\Ruby193\lib\ruby\1.9.1')
addDir('C:\dev\Ruby193\lib\ruby\1.9.1\i386-mingw32')
addDir('C:\dev\Ruby193\lib\ruby\gems\1.9.1\gems\roo-2.1.1\lib')
require 'roo'
filename = "example.ods"
@spreadsheet = Roo::Spreadsheet.open(filename)
puts("Loaded " + filename + " with " + @spreadsheet.sheets.length.to_s + " sheets")
从命令行运行,一切都很好,但在嵌入式解释器内部尝试会产生一个“不兼容的库版本”。错误。
我在这里明显遗漏了一些关于不同环境的事情 - 有谁能告诉我我是如何成功加载这些库的(我收集它们虽然它们已被扩展。所以它们实际上是DLL)解释环境?