Shiboken學習小結

2021-05-25 05:33:00 字數 1199 閱讀 1894

從pyside一換成shiboken就開始關注它,可是由於對python的c呼叫不熟,對cmake構建系統不熟,從嘗試了解shiboken到現在已經10個月過去了,還是一直沒什麼進展。但必須學習並整理一下了:

setanta 解釋說:shiboken是乙個為c/c++庫生成cpython繫結**的生成器,除此之外,沒有任何附加的含義。原文如下:

文件的第一行是這麼告訴的我們:shiboken 是 generator runner 的乙個外掛程式(前端),它使用cpython**為c++庫生成繫結。原文如下:

為了了解shiboken,我們需要先看看 generator runner:

要想為生成c++庫生成繫結,我們需要

從c++庫的標頭檔案中提取資訊

apiextractor

控制提取(修改、重新命名)哪些資訊

通過 typesystem 檔案

資訊提取之後,我們理論上可以為各種高層的語言提供繫結(只要有相應的前端存在)。

為cpython生成繫結

shiboken

為要繫結的庫生成文件

docgenerator

為... 生成繫結

...

generator runner 本身比較簡單,它的工作都是通過apiextractor和前端(比如此處的shiboken) 來完成的。

class generator;

每個前端外掛程式(比如shiboken)只需要提供了乙個函式void getgenerators(generatorlist* list) 來返回包含generator的乙個鍊錶(qlinkedlist)

在呼叫 generator runner 時,通過命令列指定使用哪乙個前端

generatorrunner --generator-set=shiboken
shiboken_generator(.dll/.so/...)

這個就是前面一直在提的外掛程式(前端)

shiboken-python*(.dll/.so/...)

最終生成的**需要依賴這個來執行

shiboken(.exe)

這只是乙個外殼,就是generatorrunner --generator-set=shiboken

外掛程式位置

面試小結 學習小結

1 string 字串常量,每次改變都會生成乙個新的物件 stringbuffer 執行緒安全 變數 改變不會生成乙個新的物件 stringbuilder 非執行緒安全 在非多執行緒的情況下,用stringbuilder會快些 2 activity的四種啟動模式 singletop 棧頂正好是該ac...

python小結教學 python學習小結

python具有非常豐富的資料型別,包括字串,列表,元組,字典集合等,每種資料型別的特點都大一樣,好好利用他們 可以讓你的python程式設計變的非常輕鬆,要好好利用就應該充分了解他們的特點,下面對他們的特點進行一些總結。python字串 字串在python中是乙個單個字元的字串的序列,可以對字串進...

zend framework學習小結

zend framework是mvc模式的一種實現,要快速的入門差不多只看zend controller zend view 部分就可以了吧。1.zend controller部分。最重要的類是zend controller front.使用它的經典 這部分是包含在index。php中的。在正確的配...