我正在使用Fiddle
从用 C 编写的动态库中加载函数。在开发过程中,我需要对库进行更改并重新加载以进行测试。问题是dlload
除非我重新启动脚本,否则不会重新加载库。我正在为 SketchUp 开发一个 Ruby 插件,因此“重新启动”脚本实际上意味着重新启动应用程序。
显示问题的示例代码:
require 'fiddle'
require 'fiddle/import'
require 'fileutils'
module RG
extend Fiddle::Importer
dlload 'utils.dylib'
end
FileUtils.rm 'utils.dylib'
module RG
extend Fiddle::Importer
dlload 'utils.dylib'
end
如果您第一次启动脚本,则没有错误。如果您第二次启动它,您会收到错误:image not found
,如预期的那样。
因此,在执行过程中,似乎只导入了一次库。关于如何强制Fiddle
重新加载库的任何建议?
我正在使用macos
和Ruby 2.0