【SWIG】C程序到python模块的swig转换流程

C程序到python模块的swig转换流程

程序参考:http://www.swig.org/Doc3.0/SWIGDocumentation.html#Introduction_nn4

0、swig下载与安装

下载链接(http://www.swig.org/download.html)

安装方法(http://www.swig.org/Doc4.0/Preface.html#Preface_installation)

1、编辑待转C程序 example.c

/* File : example.c */

double  My_variable  = 3.0;

/* Compute factorial of n */
int fact(int n) {
  if (n <= 1)
    return 1;
  else
    return n*fact(n-1);
}

/* Compute n mod m */
int my_mod(int n, int m) {
  return(n % m);
}

2、编辑swig的转换接口文件 example.i

/* File : example.i */
%module example
%{
/* Put headers and other declarations here */
extern double My_variable;
extern int    fact(int);
extern int    my_mod(int n, int m);
%}

extern double My_variable;
extern int    fact(int);
extern int    my_mod(int n, int m);

3、swig文件转换:example.i文件中%module指定了输出的python模块名是example,即调用swig转换时生成example.py文件,和中间C接口文件example_wrap.c(是对example.c的封装)。

4、编译链接:之后将example_wrap.c和待转换的example.c进行编译连接,生成动态库_example.so(名字必须是example加下划线前缀),即完成了转换。

5、发布使用:使用时将example.py 和 _example.so同时发布即可。

6、具体逻辑如下图所示。

【SWIG】C程序到python模块的swig转换流程_第1张图片

注:若是c++程序可以用 swig -c++ -python example.i进行转换

你可能感兴趣的:(swig,工具,python,swig,python,c,c++,swig接口转换)