python html5 bootstrap 视频教程

德云社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4973|回复: 0

Shiboken - 基于 Qt/C++ GUI 库绑定代码的 CPython 生成器前端插件

[复制链接]

172

主题

288

帖子

1262

积分

超级版主

Rank: 8Rank: 8

金钱
754
金币
17
威望
0
贡献
0
发表于 2018-6-11 13:18:00 | 显示全部楼层 |阅读模式
Shiboken - 基于 Qt/C++ GUI 库绑定代码的 CPython 生成器前端插件

Shiboken 是一个 Generator Runner 前端插件,它使用 CPython 源代码为 C++ 库生成绑定。


Generator Runner 是为便于 C++ 和 Qt 库开发语言绑定而创建的一个工具。它提供了一个框架,使得这个过程能最大可能自动化:使用 ApiExtractor 提取 C++ 头文件中的信息,通过相应前端 (用户可以自己提供) 生成某种目标语言绑定。


Generator Runner 本身比较简单,它的工作都是通过 API Extractor 和 前端 (比如 Shiboken) 来完成的。


快速高效 智能编辑 重构 批处理 "数字化 Python IDE" 集成开发环境

http://idepy.digitser.cn/

http://forum.digitser.cn/thread-2266-1-1.html


百度网盘

https://pan.baidu.com/s/1cKxajG


软件仓库

https://github.com/digitser

https://digitser.sourceforge.io/

https://pan.baidu.com/s/1TV70__Be1ta0ney1-tudFQ


Generator Runner 定义了一个前端接口类  class Generator;每个前端插件 (比如 Shiboken) 只需要提供了一个函数 void getGenerators(GeneratorList* list)来返回包含 Generator 的一个链表 (QLinkedList);在调用 Generator Runner 时,通过 generatorrunner --generator-set=shiboken 命令行指定使用哪一个前端。


当编译或安装 Shiboken 时,我们会注意到和 shiboken 名字相关的有 3 个文件:shiboken_generator(.dll/.so/...) 是插件 (前端);shiboken-python*(.dll/.so/...) 是最终生成代码运行需依赖的;shiboken(.exe) 是壳文件,就是 generatorrunner --generator-set=shiboken。


在命令行 --generator-set,我们可指定 Shiboken 插件完整路径。如果不是完整路径,generatorrunner 会先合成文件名 (shiboken_generator.dll),再搜索编译时指定插件目录、QCoreApplication::libraryPaths() 返回路径。


0_1304399072jZT9.gif.png

要想为 C++ 库生成绑定,需 API Extractor 从 C++ 库头文件中提取信息,通过 typesystem 文件控制提取 (修改、重命名) 哪些信息。


信息提取后,理论上就可为各种高层语言提供绑定 (只要有相应的前端存在)。shiboken 为 CPython 生成绑定,DocGenerator 为要绑定的库生成文档。



"长按二维码" 或 "扫一扫" 关注 "德云社区" 微信公众号

版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。

AI人工智能 语音助理 人工翻译 教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|Sitemap|小黑屋|德云社区  |网站地图  

GMT+8, 2020-8-7 00:48 , Processed in 0.045611 second(s), 33 queries .

工业和信息化部: 粤ICP备14079481号-2

技术支持 乐数软件     版权所有 © 2014-2021 德云社区    

快速回复 返回顶部 返回列表