從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=shibokenshiboken_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中的。在正確的配...