SWIG 和 JNA / JNI 等 C 接口封装工具及进行 C 接口的封装
SWIG 相关
SWIG 是什么
SWIG 是一个软件开发工具,是一个 封装 C/C++ 动态库供其他编程语言调用的神器。
使用它可以简化不同语言与与 C/C++ 语言的交互。简单点说,SWIG 是一个编译器,它以 C/C++的声明为输入,创建从其他语言包括常见的脚本语言如 Javascript、Perl、PHP、Python、Tcl 和 Ruby。支持的语言列表还包括非脚本语言,如 C#,D,Go language,Java,包括 Android,Lua,OCaml,Octave,Scilab 和 R。还支持几种解释和编译的 Scheme 实现(Guile,MzScheme/Racket)。可直接访问这些声明的包装。SWIG 一般不需要对存在的代码进行修改,几分钟就能创建可用的接口。
以 Java 为例,想通过 Java 程序调用 C/C++ 动态库的话,就必须先通过 SWIG 生成一堆 Java 接口,这堆 Java 接口的方法实现就通过 native 方法去调用相应的 C/C++动态库接口。
SWIG 最常用于创建高级解释或编译的编程环境、用户界面,以及作为测试和原型 C/C++ 软件