快乐虾
http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651)
欢迎转载,但请保留作者信息
很久没有摸图像处理的东西了,近期刚好需要有此需求,希望能够有一个比较好用的开发环境。在学校的时候做图像处理一直用的是matlab,不过现在正好在做VELT的开发,尝试用vs2013+python构造一个适合于自己用的开发环境。
接下来尝试用SWIG自动将C/C++的接口封装为Python可用的pyd,仍以之前的阶乘代码为例。
首先从swig.org下载swig-win-3.0.5,里面已经包含了swig.exe,将之解压缩到C:\Python27\swigwin-3.0.5,再将此目录添加到PATH环境变量中。
在PyExt工程中添加一个PyExt.i的文件,内容如下:
/* File : PyExt.i */
%module PyExt
%inline %{
int fact(int n);
%}
将着将PyExt.i配置为自定义生成:
配置生成步骤:
Swig自动生成的PyExt.cpp中定义了模块的输出函数:
/*-----------------------------------------------
@(target):= _PyExt.so
------------------------------------------------*/
#if PY_VERSION_HEX >= 0x03000000
# define SWIG_init PyInit__PyExt
#else
# define SWIG_init init_PyExt
#endif
#define SWIG_name "_PyExt"
可以看到SWIG生成的名字带了_,与我们的项目名称不符,修改它,去掉下划线:
/*-----------------------------------------------
@(target):= _PyExt.so
------------------------------------------------*/
#if PY_VERSION_HEX >= 0x03000000
# define SWIG_init PyInit_PyExt
#else
# define SWIG_init initPyExt
#endif
#define SWIG_name "PyExt"
测试一下:
调试它:
搞定!