VS 使用swig 教程
来源:互联网 发布:php json null 编辑:程序博客网 时间:2024/04/30 04:28
1. 首先在www.swig.org下载swig安装包。解压安装包到任意路径,路径中最好不要带空格。
2. 制作源文件和swig接口文件,我的文件如下
3. 配置Visual Studio 的文件路径,也最好把文件拷到不到空格的路径下,VS中的配置方法:
VS2008: 工具-》选项-》项目和解决方案-》VC++目录里添加
VS2010:
建的项目-》右击-》属性-》VC++目录
难道要每个项目都设置一遍常用的Include吗?答案是,不用
找个项目的属性管理器-》Debug|Win32-》Microsoft.Cpp.Win32.user-》右击-》属性-》看到了吧...
- 4.新建一个dll空工程
- 新建一个Win32 Console Application工程,在向导中点next,Application type选择DLL,在Additional options中选择Emppty project
- 5.向头文件和源文件中加入自己写的C++接口代码
- 例:加入FunTest.h
- int AddTest(int x, int y)
{
return x+y;
}
6.在工程内加入一个.i文件
例:加入SwigTest.i
%module SwigTest2
%{
#include "FunTest.h"
%}
%{
#include "FunTest.h"
%}
int AddTest(int x, int y);
//解释下:
%module标记用于定义SWIG生成的模块的名称,%{%}标记中的内容会被一字不差地插入SWIG自动生成的文件xxx_wrap.cxx中,其中xxx代表用%module指定的模块名称
7.配置使生成的dll文件自动改成pyd文件
右击工程-》属性-》链接器-》输出文件里 把$(OutDir)/$(ProjectName).dll改成$(OutDir)/_$(ProjectName).pyd
注:要如果生成的是SwitTest.dll 要把它改成_SwitTest.pyd, 前面有个‘_’啊, 这里配置完就会自动改了
8. 配置自动编译.i文件
.i文件右击-》属性-》自定义生成步骤-》【命令行】输入编译命令C:/swigwin-2.0.2/swig -c++ -python $(InputPath)
-》【输出】输入$(InputName)_wrap.cxx;
-----------------------------------------------------------------------------------------------------------------------------------------
这样运行就会调用命令行自动编译.i文件,生成xxx_wrap.cxx和xxx.py
上述例子生成:SwigTest_wrap.cxx和SwigTest.py
报错.... 这是正常情况
因为我也不知道怎么自动把声的.cxx自动加入工程...
然后手动把xxx_wrap.cxx 加入工程, 再运行一次
OK!!!
debug文件夹下生成 _xxx.pyd 和 _xxx.lib
上述例子生成的是_SwigTest.pyd 和_SwigTest.lib
把SwigTest.py和_SwigTest.pyd 放到一起, 写个测试py
# a.py
import SwigTest2
print SwigTest2.AddTest(1, 4)
print SwigTest2.AddTest(1, 4)
运行正确。。。。
另: 说了那么多,运行错了一次, 又运行一次, 其实就是第一次编译.i接口文件第二次把.cxx加入工程后, 才正在编译运行
也就是说,我们可以把FunTest.h和SwigTest.i 放一块, 用swig编译下, 生成SwigTest_wrap.cxx和SwigTest.py
然后再新建dll工程 ,把FunTest.h、SwigTest.i、SwigTest_wrap.cxx编译运行就可以了, C++编译中只用到了这三个文件。
- 参考:http://topic.csdn.net/u/20090303/21/72a4fa1d-9146-4fc2-8555-8db2304d02df.html
- http://hi.baidu.com/kxw102/blog/item/32e2dfcbf027e694c817689b.html
- VS 使用swig 教程
- swig教程
- SWIG教程摘录
- SWIG 使用经验
- windows下使用swig
- swig java使用实例
- swig android的使用
- Swig 使用指南如何使用
- vs使用安装devexpress教程
- SWIG
- SWIG
- SWIG
- SWIG
- SWIG
- SWIG
- swig
- 使用SWIG写Python插件
- 使用SWIG扩展ruby性能
- C语言运算符优先级等级口诀
- php Local File Inclusion的利用方法汇总
- 中兴招聘面试问题:有源晶振输出串个电阻做啥用?
- 【转】【java】java中的byte,以及它与int的转化
- LXI
- VS 使用swig 教程
- VS(2008、2010)添加INCLUDE和lib
- Linux基础(1)-RPM命令
- java做一个电子商城 想用strut技术 求开发配置文件
- C语言实例 爱因斯坦的数学题
- Android Smart Dict - 单词导入 - 文件浏览器
- UDP传输文件总结1
- 在socket中用http代理访问网页的关键问题
- 使用cnvcl中的TCnIp提取IP段