什么是SWIG及其用途

时间:2010-06-16 02:14:10

标签: programming-languages swig

我只是在互联网上谷歌正在使用swig。

是否有人使用过它并告诉我它对我有用。

我的意思是为什么它被使用以及它如何使我的工作变得更好。

谷歌正在使用它必须是好的

2 个答案:

答案 0 :(得分:2)

仅仅因为有人使用某些东西并不能让它变得更好。话虽如此,我爱我的Swig。

我用它来用Java和Python包装C ++库。它允许我编写一次代码并仍然使用其他语言的代码。它以有意义且一致的方式翻译API,这是不容小觑的。简而言之,它让我们这些必须同时使用多种语言的多种语言的人生活更轻松。

答案 1 :(得分:2)

当用一种语言编写的程序需要调用另一种语言编写的程序时,SWIG会生成所需的“粘合代码”。 SWIG的运作假设C / C ++是一种最低的共同点,如果你想连接,比如说Python和Java,你必须通过C传递所有信息.SWIG非常雄心勃勃,涵盖了大量的脚本语言,基本上提供导入/导出到C或C ++。

您使用SWIG的具体方式因脚本语言而异,但总体思路始终相同:您描述了一些C / C ++头文件,SWIG会生成使用您喜欢的脚本语言中的头文件所需的粘合代码。将两种脚本语言连接在一起并不适合常见用例,如果您没有遇到麻烦,我会感到惊讶。一个好的计划是只交换两种语言之间的不可变数据。即使在那时,我也会为惊喜做准备。

摘要: SWIG在其设计目标上运行良好,即将C / C ++库导出为巨大的各种脚本语言 - 但一个一次。在同一个过程映像中运行两个不同的脚本语言可能比您预期的更难。