vs2013在图像处理中的应用(8):用SWIG自动包装C/C++接口
快乐虾
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"
测试一下:
调试它:
搞定!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。