Ruby 代码中的 C/C++?
Posted
技术标签:
【中文标题】Ruby 代码中的 C/C++?【英文标题】:C/C++ within Ruby code? 【发布时间】:2011-03-16 01:41:33 【问题描述】:C/C++ 是编写 Ruby 应用程序的一些性能关键方面的好选择。我知道这是可能的。
我想知道如何将 C/C++ 代码添加到 Ruby 代码中;任何其他语言。
您在开源项目或其他项目中是否注意到了这方面的任何实际应用?
【问题讨论】:
【参考方案1】:除了“扩展 Ruby”之外,还有另外两个资源:
README.EXT (extension.rdoc) - 向您展示有关如何构建 C 扩展的更多信息。对“扩展 Ruby”的赞美 Ruby Inline - 这是一个库,它试图通过让您调用 ruby 中的方法来编译 C 代码,从而使构建 C 扩展变得更加容易。【讨论】:
【参考方案2】:查看 Pickaxe 书籍的“扩展 Ruby”部分:
http://www.ruby-doc.org/docs/ProgrammingRuby/html/ext_ruby.html
【讨论】:
【参考方案3】:您应该看看SWIG - 它允许您在 C/C++ 中创建 ruby 扩展。
【讨论】:
【参考方案4】:我们在其中一个项目中使用ffi。
Ruby-FFI 是一个 Ruby 扩展 以编程方式加载动态 库,绑定函数 他们,并从 红宝石代码。此外,Ruby-FFI 扩展作品无需更改 Ruby 和 JRuby。
效果很好。
【讨论】:
【参考方案5】:将您的高性能代码编译成系统服务/可执行文件,并从 Ruby 内部调用它...?
【讨论】:
当然,系统服务是其中一种方式。在某些情况下会没事的。在用 ruby 编写的大型算法中为一小段 c++ 代码运行系统服务可能很笨拙。【参考方案6】:看来你需要阅读Extending Ruby
【讨论】:
感谢您的建议。这可能是首先要研究的内容之一。以上是关于Ruby 代码中的 C/C++?的主要内容,如果未能解决你的问题,请参考以下文章