【发布时间】:2015-06-02 16:54:32
【问题描述】:
在我的特定情况下,我有一个复杂的类(一类类的类),我想向脚本语言(又名 Ruby)公开。不是直接传递那个复杂的类,而是有人给了我一个想法,就是将一些函数开放给像 Ruby 这样的脚本语言,这看起来更简单。我见过 Rice,但我见过的唯一例子是使用简单的函数来乘法,而不是与类交互。
为简单起见,我有一个简单的类,其中包含要公开的功能:
class Foo
{
private:
//Integer Vector:
std::vector<int> fooVector;
public:
//Functions to expose to Ruby:
void pushBack(const int& newInt) {fooVector.push_back(newInt);}
int& getInt(const int& element) {return fooVector.at(element);}
};
还有:
我不希望只有 SWIG 下载页面的链接,或者 2010 年写的解释如何用大米做到这一点的文章,我想要一个可能有用的指南(我没有运气不错)
回答:
我使用的是 Linux (Ubuntu),但这是一个交叉兼容的程序,所以我必须能够在 Windows 和 OS X 上编译
编辑:
我知道存在共享库(dll 和 so 文件),但我不知道我是否可以拥有一个依赖于包含类的 .hpp 文件的库。
【问题讨论】:
-
经过一些研究,我发现 Ruby 可能不是嵌入 C++ 的最佳语言。如果是这样,我可以更改问题,以便脚本语言是 Python,如果它更有意义并且不会使任何答案无效
-
所以你可以在问题中添加
python标签来引起特别的注意。 -
@hedgesky 谢谢你的提醒,我完全忘记了这个问题,直到 Orfby 提出赏金。