代码之家  ›  专栏  ›  技术社区  ›  Joh

SWIG是什么?它的用途是什么

  •  1
  • Joh  · 技术社区  · 15 年前

    我的意思是为什么要用它,以及它如何能使我的工作好起来。

    因为谷歌正在使用它一定是好的

    2 回复  |  直到 15 年前
        1
  •  2
  •   wheaties    15 年前

    仅仅因为有人使用了某些东西并不能使它变得好。说我爱我的大口。

    我用它来包装java和python中的C++库。它允许我只写一次代码,但仍然在其他语言中使用该代码。它以有意义和一致的方式翻译API,这是不可低估的。简言之,它使我们这些必须同时使用多种语言和多个库工作的人的生活更轻松。

        2
  •  2
  •   Norman Ramsey    15 年前

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

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

    总结: SWIG在设计的方面工作得很好,它是将C/C++库导出到 巨大的 多种脚本语言 有两个 不同的