利用SIP将C++封装为Python,SIP采用手动书写,但对于比较庞大的工程手动书写sip文件就显得很苍白无力。QT利用MetaSIP这款工具生成sip文件,然后手动修改部分SIP文件,然后利用python书写 configuer.py配置文件生成Makefile文件,最后执行Make脚本将C++生成为Python。下面主要介绍MetaSIP安装以及配置 过程,以及利用如何利用MetaSIP生成SIP。
1.安装
1) 所需软件
MetaSIP、Python3.x、Qt4、PyQt4、dip、sip、QScintilla2、GCCXML、cmake、mingw
MetaSIP下载地址:http://www.riverbankcomputing.com/hg/
PyQt4、sip、QScintilla2均可以到http://www.riverbankcomputing.com/news下载
dip一定要采用http://www.riverbankcomputing.com/hg/的版本
GCCXML到http://gccxml.github.io/HTML/Index.html下载
2)安装
MetaSIP只支持Python3.x,在安装其之前保证Python3.x和QT安装
a. 安装SIP(参照上篇利用sip封装C++)
b. 安装PyQt4
python configure.py
make
make install
c. 安装QScintilla2
cd Qt4Qt5 qmake qscintilla.pro make make install
d. 安装dip
启动命令行工具,进入dip目录
make
pythonsetup.py install
注意:执行python setup.py install时,如果报如下错误
则查看dip目录下是否有VERSION文件(一般报错是没有的^_^),则新建一个VERSION,内容为56a217326678
e. 安装GccXml
GccXml的编译需要借助Cmake,安装时需要提前安装CMake,然后执行下面命令:
cmake ../gccxml -DCMAKE_INSTALL_PREFIX:PATH=/installation/path
make
make instal
f. 安装MetaSIP
make
makeinstall
注意:编译时候,如果报如下错误
则在MetaSIP目录下创建VERSION文件,其内容为b009740bb135
如上步骤,MetaSIP就安装完成了,启动命令窗口,msip -h,弹出以下窗口,则说明MetaSIP安装完成
2.利用MetaSIP生成SIP
启动命令窗口,输入 msip回车,则弹出以下窗口:
在Edit中依次设置Modules、Platforms、Versions(Linux下不好截图有部分图片是window下截图)
点击New按钮,新建一个工程,并且选择上述步骤所设置的版本
然后如下图所示依次设置下面项
点击update按钮,然后点击scan按钮,将会扫描指定目录下的所有头文件,扫描后的结果如下所示:
选中具体头文件,File Header部分就会高亮,如下图所示
点击update按钮,然后点击parse按钮,就会将选中的头文件的类以及相关变量、命名空间等解析出来,如下图所示
在具体的类以及函数上单击右键,将Uncheck设置为check,然后保存文件,文件的后缀名为*.msp
启动命令窗口,进入*.msp文件所在目录,执行以下命令:
msip -g dir *.msp
dir:SIP文件生成目录
*.msp:msp文件路径
到此SIP文件则已经生成,只需要按照上篇文章所述,生成Python即可!