2.1 什么是SWIG

SWIG是一个软件开发工具,使用它可以简化不同语言与C/C++语言的交互。简单点说,SWIG是一个编译器,它以C/C++的声明为输入,创建从其他语言如Perl、Python、 Tcl、Ruby、Guile、Java等可直接访问这些声明的包装。SWIG一般不需要对存在的代码进行修改,几分钟就能创建可用的接口。SWIG可能的应用包含以下几个方面:

  • 创建对现成C语言程序的解释接口
  • 快速原型与应用开发
  • 交互式调试
  • 将遗留软件进行重组与重构,用于脚本语言
  • 创建GUI(如Tk)
  • 使用脚本测试C库及程序
  • 为脚本语言创建高性能的C模块
  • 让C编程变得愉快(或说的过去)
  • 让你的朋友们钦佩你
  • 获得更多的研究基金(尽管很显然对本书的作者来说不适用)

SWIG最先被设计给那些构建可扩展的科学软件的科学家和工程师们用的,适用它不需要具备软件工程学位。正因如此,SWIG的使用显得不正式或随意(例如,不像IDL编译器那样需要提供正式的接口规范)。尽管这样的开发风格不适合每个项目,但它特别适合于小型软件开发。现如今SWIG已经用于大型开源和商业项目中了。