我想创建一个调用我编写的 ac 函数的 ruby gem。例如:
int func(int x)
{
return x * 2;
}
这将在我的 rubygem 的 ac 文件中。然后我希望能够通过使用 ffi 接口包装它来在 ruby 中调用它:
module TestModule
extend FFI::Library
ffi_lib 'MyLib'
attach_function 'func', [:int], :int
end
但是我不确定如何设置它,以便在安装 gem 时 c 文件将编译成一个库(名称为“MyLib”),并且 ffi 将检测该库并在上面的代码中使用它.
有谁知道如何做到这一点,或者有更好的方法吗?请注意,我宁愿不使用扩展 ruby 的标准方式(如 The Pragmatic Programmer's Guide Extending Ruby 部分中所述),因为这只适用于标准 ruby 解释器(我相信)。
如果这对这个问题很重要,我一直在使用珠宝商来制作我的宝石。