【问题标题】:C/C++ within Ruby code?Ruby 代码中的 C/C++?
【发布时间】:2011-03-16 01:41:33
【问题描述】:

C/C++ 是编写 Ruby 应用程序的一些性能关键方面的好选择。我知道这是可能的。

我想知道如何将 C/C++ 代码添加到 Ruby 代码中;任何其他语言。

您在开源项目或其他项目中是否注意到了这方面的任何实际应用?

【问题讨论】:

    标签: c++ c ruby interop embed


    【解决方案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

            【讨论】:

            • 感谢您的建议。这可能是首先要研究的内容之一。
            猜你喜欢
            • 2023-03-16
            • 1970-01-01
            • 1970-01-01
            • 2012-03-26
            • 1970-01-01
            • 1970-01-01
            • 2011-02-24
            • 1970-01-01
            • 2013-11-12
            相关资源
            最近更新 更多