我刚刚卸载了旧版本的 Ruby,删除了所有的 gem(包括 Rails),并安装了 Ruby 2.0。换句话说,完全干净的重新安装。启动 IRB 后,我收到以下消息:
DL 已弃用,请使用 Fiddle
注意:我在 Windows 机器上。
这条消息是什么意思?
当您使用 Windows 时,您收到的消息 ruby 2.0.0p0 (2013-02-24) 很 常见 。
ruby 2.0.0p0 (2013-02-24)
消息“ DL is deprecated, please use Fiddle” 不是错误; 这只是一个警告。
DL is deprecated, please use Fiddle
来源是前段时间引入的 DL 的弃用通知dl.rb(请参阅修订/37910)。
dl.rb
在 Windows 上,该lib/ruby/site_ruby/2.0.0/readline.rb文件仍然需要dl.rb,因此当您(因为 irb 需要)或其他任何需要时会出现 警告消息 。require 'irb'``'readline'``require 'readline'
lib/ruby/site_ruby/2.0.0/readline.rb
require 'irb'``'readline'``require 'readline'
您可以readline.rb使用您喜欢的文本编辑器打开并查找代码(靠近第 4369 行):
readline.rb
if RUBY_VERSION < '1.9.1' require 'Win32API' else require 'dl' class Win32API DLL = {}
我们总是希望在未来的Ruby版本中改进以解决这种弃用问题。
编辑:对于那些想要更深入地了解 Fiddle 与 DL 的人,可以说他们的目的是将外部库与 Ruby 动态链接;您可以在 ruby-doc 网站上阅读有关DL或Fiddle的信息。