在Ruby中调用C ++共享库

时间:2017-06-27 14:56:53

标签: c++ ruby linux unix dll

我有一个用 C ++ 编写的共享库“ mylib.so ”,我想在Ruby中创建一个调用库函数的应用程序。

我研究并发现了 FFI https://github.com/ffi/ffi),它只适用于C库。使用 Rice https://rubygems.org/gems/rice/versions/2.1.0),我发现需要更改库的源代码的教程,但我无法访问此代码。

有没有办法在 Ruby 代码中实现 C ++ 库来使用其功能?

1 个答案:

答案 0 :(得分:0)

当您说您无权访问代码时,您的意思是您无权访问该库的标题?如果您无法访问定义类,原型设计函数和暴露某些API的标头,那么您将无法将此库实际绑定到任何其他代码段,无论后者是用c++编写的, pythonruby或其他任何内容。

如果您 可以访问库的标题,那么您可以按照{{3}的说明轻松使用rice-ruby构建ruby包装器}。您只需要文件头和库的最新版本,以便进行正确的包装。随意更好地定义您的问题,我会尽力帮助。

相关问题