日期:2014-05-16  浏览次数:20830 次

windows下使用swig

最近上面让学个东西,swig。之前都没请说过,网上搜了搜,说是可以扩展python模块的,整理了下资料

1、下载swigwin,解压即可

2、编写c++代码如下

main.cpp

#include<iostream>
#include"main.h"
using namespace std;

int compute(int a, int b)
{
  return a+b;
}
main.h

#ifndef _main_h_
#define  _main_h_

int compute(int a, int b);
#endif
main.i

%module main
%inline %{
#include "main.h"
%}
int compute(int a,int b);

3、将swigwin主目录添加到环境变量中去,打开cmd 切换到代码所在目录下,执行下面的命令

swig -c++ -python main.i

这时候我们会看到在该目录下生成了两个文件main.py和main_wrap.cxx

4、打开vs2010新建Win32 Console Application工程,选择空项目,Application type选择DLL

5、将我们的main.h 添加到头文件,将 main.cpp main_wrap.cxx 添加到源文件,将main.i添加到工程目录下

6、设置工程目录的属性,在属性页/配置属性/vc++目录 中添加包含目录和库目录 分别为python中的include目录和libs目录

7、编译生成main.dll文件   改名为_main.pyd, 将main.py 和 _main.pyd 文件拷贝到另外一个文件夹test中测试,在test中新建test.py

代码如下

import main
aa = main.compute(5,2)
print(aa)
然后

执行后就可以看到结果

c:\C++>python test.py
7