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已经用于大型开源和商业项目中了。