8-02 734 views
接口文件
现在,为了增加这些文件到你喜欢的语言中,你需要写一个接口文件(interface file)投入到swig中。这些C functions的接口文件可能如下所示:
/* example.i */
%module example
%{
/* Put header files here or function declarations like below */
extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();
%}
extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();
安装SWIG
sudo apt-get install swig
建立Tcl模块
sudo apt-get install tcl8.4 tcl8.4-dev
在UNIX系统提示,键入以下信息(LINUX系统请见SWIG WIKI共享库页面其他操作系统帮助):
swig -tcl example.i
gcc -fpic -c example.c example_wrap.c -I/usr/include/tcl8.4
gcc -shared example.o example_wrap.o -o example.so
运行tcl终端测试
>> tclsh
% load ./example.so example
% puts $My_variable
3.0
% fact 5
120
% my_mod 7 3
1
% get_time
Sun Feb 11 23:01:07 1996
%
建立Python模块
安装Python
sudo apt-get install python2.7 python2.7-dev
转换编码C成Python模块很简单,只需要按如下做即可(请见其他操作系统的SWIG共享库帮助手册):
swig -python example.i
gcc -c -fPIC example.c example_wrap.c -I/usr/include/python2.7
ld -shared example.o example_wrap.o -o _example.so
编写测试脚本
# test.py
import example
print example.fact(5)
print example.my_mod(7,3)
print example.get_time()
运行测试脚本
python test.py