在 Python 中使用 Shiboken 调用 Cpp

一次实践,踩了 Windows 上的许多坑。

为什么要用 Shiboken ?

因为项目中使用了 PySide ,为了统一性,C++ binding 也同样使用 Shiboken。

现存 Shiboken 资料极其稀少,在搜集了各种开源项目和 StackOverflow 后,终于摸通了 Shiboken 用法,至少能在 Windows 下正常使用了(换到 Unix 下肯定也不会有这么多坑)。

如果你要使用 PySide6 Shiboken6 仅需更改版本号即可

Steps

0. Preparation

你需要安装相应 Python 库, Shiboken2shiboken2_generator,其中 Shiboken2 可以通过正常方式使用 pip 安装,但 [shiboken2_generator] 需要下载 whl 进行安装。

pip install PySide2

下载后使用 pip 安装

pip install shiboken2_generator-xxxxx.whl

1. CMake Project

参考 FindPySide2.cmake, FindShiboken2.cmake, PySide2ModuleBuild.cmake.

你可以在这找到它们 modules

通常来说,你无需对其进行修改就能使用,只需要把它们加入 CMAKE_MODULE_PATH 即可使用。

具体使用可以参考如下内容:

可能遇到的坑

1. 难以描述的神必报错

神秘报错

此报错由 Windows 下 shiboken2_generator 导致,原因为 shiboken2_generator 自带的 libclang.dll 与 VS 2019 以上版本不兼容(怪),仅需copy一份兼容的 libclang.dll 至 shiboken2_generator 目录下替换即可。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇