我有一个用 C ++ 编写的共享库“ mylib.so ”,我想在Ruby中创建一个调用库函数的应用程序。
我研究并发现了 FFI (https://github.com/ffi/ffi),它只适用于C库。使用 Rice (https://rubygems.org/gems/rice/versions/2.1.0),我发现需要更改库的源代码的教程,但我无法访问此代码。
有没有办法在 Ruby 代码中实现 C ++ 库来使用其功能?
答案 0 :(得分:0)
当您说您无权访问代码时,您的意思是您无权访问该库的标题?如果您无法访问定义类,原型设计函数和暴露某些API的标头,那么您将无法将此库实际绑定到任何其他代码段,无论后者是用c++
编写的, python
,ruby
或其他任何内容。
如果您 可以访问库的标题,那么您可以按照{{3}的说明轻松使用rice-ruby
构建ruby
包装器}。您只需要文件头和库的最新版本,以便进行正确的包装。随意更好地定义您的问题,我会尽力帮助。