switch使用方法,swim swiming用法

  switch使用方法,swim swiming用法

  由于近期工作中需要调用python中的c/c代码,网上搜索的方法很多,我结合网上资料总结了以下几点。

  下面直接说一下适用的方法。

  1.swig适用于这种方法的治疗。方法步骤:

  a、下载swig源码包

  http://www.swig.org/survey.html

  b、解压swig安装包,解压安装。

  塔尔-xvf swig-3.0.12.tar.gz。/configure-prefix=/usr/locals wig(此处指定了安装目录,未指定默认的直接默认系统路径)

  (如果这个不成功,prce错误缺失,说明对应的文件缺失,需要安装对应的库,

  个人使用Ubuntu,安装方法:apt-get安装pcre-dev,或者下载源码包安装。

  )

  制作制作安装

  至此,swig安装完成。

  2.使用示例

  在python中调用c/c代码使用方法。

  a、c代码:

  //test.h

  int add(int a,int b);

  int sub(int a,int b);

  //test.cpp

  int add(){ return a b;} int sub(int a,int b){ return a-b;}

  编辑test.i文件

  用下面的方法来写。I文件(* * * * * * * * * *)。

  //%模块后的名称是封装的模块名称。包,python通过这个名称加载程序。

  //%{%}一般包含一些这个文件需要的函数声明和头文件。

  //最后一部分声明了要封装的函数和变量,可以使用%include file模块头文件直接包含。

  b,//文件test.i

  %模块测试

  %{

  #define SWIG_WITH_INIT

  #包含“test.h”

  %}

  %include test.h

  C.执行命令进行编辑。我归档。

  swig -python -c测试

  会生成相应的文件:模块名_ warp.cxx。

  使用python提供的自动编译模块进行编译。编写编译文件setup.py

  内容如下:(仅供参考,详细参见python自动编译动态链接库文档)

  #生成扩展模块

  Test _ module=extension (_ test ,#模块名,必须加下划线。

  Sources=[test_wrap.cxx ,#封装的接口cxx文件

  test.cpp],

  )

  设置(name=test ,# packaged name

  版本=0.1 ,

  作者=SWIG Docs ,

  description=从文档简单切换pht ,

  Ext_modules=[test_module],#与上面的扩展模块名一致。

  Py_modules=[test],#要打包的模块列表

  )

  使用python执行setup.py文件

  Python setup.py build编译生成相应的库,Python可以直接调用。

  实现过程如下:测试模块是编译C代码生成的测试模块,前面已经介绍了一个C代码的例子:

  导入测试

  test.add(1,2)

  三

  测试sub(4,2)

  2

switch使用方法,swim swiming用法