如何最好地混合使用Ruby和其他编程语言?(特别是C++)

3
我正在学习 Ruby,并开始尝试使用 C 构建扩展程序。我有《Programming Ruby The Pragmatic Programmers' Guide》这本书,所以我可以按照基本的步骤进行操作。我想知道是否已经存在一些很棒的框架或其他工具来帮助 Ruby 与其他语言之间的互操作性,其中对我最重要的是 C++。我已经尝试过搜索,但结果都是关于语言比较而不是语言互操作性的。谢谢您的帮助。
Andy

有cplus2ruby(http://rubyforge.org/projects/cplus2ruby/),虽然我不能深入评论它的实用性,我会把这留给Ruby专家们... - ChristopheD
非常有趣,我一定要稍微玩一下,谢谢!(SWIG 有使用许多不同的脚本语言的优势...哦,决定,决定!) - Andy
3个回答

1

看看SWIG。它是一个很好的框架,用于将C和C++程序与其他高级语言编写的程序集成在一起。它最初是为支持Python、TCL和Perl而编写的,但现在也扩展支持Ruby。


PS不能为你的答案点赞。我觉得这个声望系统非常有趣——就像RPG和XP一样!那么我什么时候可以拥有魔法导弹呢? - Andy

0
如果你想使用Ruby和Java一起编程,那么可以考虑使用JRuby。JRudy是Ruby的一个Java实现,它能够让你通过Ruby调用Java库和代码。

http://jruby.org/


谢谢。我听说过它,但还没有深入研究过。我想我可能想要用它来运行我的Ruby代码(需要调查利弊),但我不认为我想用Java来做我的扩展。主要是出于性能原因,我将制作其他语言扩展,而且我最熟悉C++... - Andy

0

FFI是将Ruby实现与C库连接的推荐方式,但是一些搜索结果表明这种方式可能无法直接使用于C++,因此可以尝试使用SWIG。你可以在这里找到FFI-SWIG 相关信息


谢谢,很有趣。从快速浏览来看,它的最大优势似乎是我可以创建不与Ruby有任何关联(没有ruby.h,没有rb_define_class等)的C库,并使用此库进行接口交互。很好,但在这种情况下并不完全是我所寻找的。再次感谢。 - Andy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接