如何用mingw编译python扩展
来源:互联网 发布:售价金额和算法 编辑:程序博客网 时间:2024/06/05 02:06
最近在用Python做一些东西,由于需要发布,所以要使用py2exe打包,不过发现python2.6打包后的文件不给力,在没有安装python或者vs2008的机器上无法运行,估计是dll不对。所以改用python2.5来做程序,发现挺好用的。
在用pypcap的时候发现上面发布的编译好的程序比较旧,有一些故障没有解决(比如阻塞还有就是readpkts包列表是同一个地址等问题),在trunk版本上已经解决了。所以需要编译一下。
由于使用了pyx格式的,按照install文件的提示,下载Pyrex ,winpcap(版本不用太新,防止目录结构变化)以及mingw,然后修改makefile文件,指明winpcap开发库的地址和正确的配置好pyrex调用,按照说明文件make,应该就可以了,不过提示了无法找到一些符号。
根据分析,原来是少了很重要的一个步骤,就是mingw的gcc需要连接.a文件,不能直接连接vs2003编译出来的文件。
关键部分出场了,找一个python的dll文件(activeState的好像没有,python官方安装有,所以随便找一个python25.dll就可以了),用pexports导出
pexports python25.dll > python25.def
然后用dlltool(mingw)自带的工具转换到.a文件
dlltool --dllname python25.dll --def python25.def --output-lib libpython25.a
把生成的libpython25.a放到python的libs下
再执行mingw32-make,果然顺利生成了pcap.pyd文件,其实就是dll文件啦。
执行python setup.py bdist_wininst,就可以看到打包后的文件了,也就是生成了一个描述文件再加上刚才的pyd文件,但是被封装成exe文件了,用户可以直接点击安装。
- 如何用mingw编译python扩展
- 如何用mingw编译产生成lib
- 如何用MinGW 命令行编译链接c/c++
- 如何用MinGW 命令行编译链接c/c++
- 使用MinGW 编译python扩展模块
- 使用 MinGW 编译 C/C++ 写的 python 扩展
- window下使用Mingw编译python扩展库ujson
- 如何用 MEF 扩展应用程序
- 【Python笔记】如何用C语言实现Python第三方扩展包
- 如何用vs08编译ffmpeg
- 如何用python 访问url
- 如何用Python写spark
- windows下用mingw开发python扩展
- 如何用UltraEdit编译C#源程序
- 如何用UltraEdit编译C#源程序
- 如何用UltraEdit编译C#源程序
- 如何用UltraEdit编译C#源程序
- 如何用UltraEdit编译C#源程序
- Linux常用命令(系统命令)
- Spring 3 事务管理
- Linux常用命令(文件命令)
- Linux常用命令(进程命令)
- Comparison between overloading operators in member function and in friend function
- 如何用mingw编译python扩展
- JAVA加密详解
- 排序算法性能及选择总结
- 高手博客链接
- JAVA相关基础知识
- 使用typedef简化声明的实例分析
- 浅谈J2me游戏如何快速移植到Android
- 遥控器的革命?
- HTTP Tunnel使用的几种使用(经典)