如何在C ++中嵌入Ruby?

将Ruby作为脚本语言嵌入C ++的最佳方法是什么? 使用ruby.h? 痛饮? 别的什么? 我需要的是将一些C ++对象暴露给Ruby并让Ruby解释器评估访问这些对象的脚本。 我不关心扩展Ruby或用C ++访问它。

我发现这篇文章是关于在C ++中嵌入Ruby的 ,虽然它非常有用,但它有点老了,我想知道是否有关于这个主题的任何其他资源(或类似引擎的开源实现)。

swig可能是要走的路…..但ruby没有嵌入太好……

如果你想要一种很好地融入C ++的语言,试试lua

赖斯看起来很有前途。

Ruby提供了一个非常有用的README.EXT文件。 它有很多关于如何扩展Ruby以及在C和Ruby类型之间进行转换的信息。

这本摘录也来自镐斧书 ,几乎涵盖了相同的东西。

在我的情况下,当我将Ruby脚本添加到我的应用程序时,我决定不使用swig,因为我的需求非常简单,而且我不想添加另一个构建依赖项。

您可能希望查看tinyrb 。

我一直在研究Rarity( https://github.com/Plaristote/Rarity ),它做了两件事:

  • 从C ++ API的YML描述生成Ruby绑定
  • 允许以最C ++的方式与Ruby脚本进行交互

我已经解决了很多问题(exception处理,垃圾收集)……我还没有看到Rarity用来使你的绑定生效的代码生成的任何其他地方。 我还没有看到任何其他的lib允许在C ++和Ruby类型之间进行这种简单的转换。

我认为Rarity值得一试! 而且我也很乐意得到一些反馈:)!