问题标签 [ruby-ffi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Ruby Fiddle - 在 WINdows MSYS2 中找不到函数
我正在尝试使用Ruby Fiddle访问我开发的 C 函数。C代码是:
我正在使用MSYS2,所以我编译它:
然后在 Ruby (2.7.1) irb 控制台中使用:
加载dll,我没有收到任何错误,但是当我尝试加载函数时
我收到错误:
我在 macos 上使用了相同的方法,并且函数被正确导入,所以我认为问题不在于代码或函数签名。
为了完整起见,如果它很重要,我已经分别安装了 MSYS2 和 ruby,MSYS2 来自主网站,Ruby 来自rubyinstallers。我正在从MSYS2 MinGW 64
控制台编译并irb
从安装程序创建的 Ruby 终端运行。它也应该使用 MSYS2。
编辑(在正确答案后添加更多信息)
对我来说关键部分是-shared
选项。
我还MSYS2
从MSYS2卸载并直接使用了MSYS
from rubyinstaller,如下所示:
此时,如果您还没有安装工具链,您可以使用
我仍然不明白的一件奇怪的事情是输出which
:
它们看起来不同,但这可能是因为 MSYS2 与 rubyinstaller 捆绑在一起时的工作方式。