swig的使用
1.介绍
SWIG是一个能将C或者C++编写的程序与其它各种高级语言如Perl, Python, Ruby, 和 Tcl进行联接的开发工具。其原理是从C/C++头文件中找到申明并利用他们生成脚本语言访问C/C++代码所必须的封装代码。SWIG具有高度可自定义的特点,它能帮助你生成适合你的应用程序的封装包。
2.使用
我们以Ubuntu为例子,用Python作为目的语言,Python调用C。
安装swig
1
apt-get install swig
安装python-dev
1
apt-get install python-dev
这是Python的开发包,包含库文件,和头文件,头文件一般在
/usr/include/python2.x
编写test.c文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
double My_variable = 3.0;
int fact(int n) {
if (n <= 1) return 1;
else return n*fact(n-1);
}
int my_mod(int x, int y) {
return (x%y);
}
char *get_time()
{
time_t ltime;
time(<ime);
return ctime(<ime);
}编写配置文件test.i
配置文件其实就是一个接口文件
1 | %module example |
- 构建Python模块
1 | swig -python test.i |
如果在ld命令中出现了relocation R_X86_64_32 against xxx 错误,请在
gcc中加入-fPIC 然后再ld。