• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    SDK導出Python接口的方法、裝置、設備及介質制造方法及圖紙

    技術編號:36707218 閱讀:25 留言:0更新日期:2023-03-01 09:30
    本發明專利技術公開了SDK導出Python接口的方法、裝置、設備及介質,該方法包括根據SDK的C++接口創建Python的接口類并與其進行綁定,生成關聯Python類型的STL標準模板庫列表和C++類列表;根據STL標準模板庫列表進行STL標準模板庫綁定;根據C++類列表進行C++接口參數類綁定;編譯所有生成的文件并鏈接為庫文件輸出。本發明專利技術能夠提高SDK導出Python接口的效率,減輕開發工作量,不易出錯,且后期添加接口或維護也比較方便。比較方便。比較方便。

    【技術實現步驟摘要】
    SDK導出Python接口的方法、裝置、設備及介質


    [0001]本專利技術屬于軟件開發
    ,涉及SDK導出Python接口的方法、裝置、設備及介質。

    技術介紹

    [0002]在電腦、服務器或其他設備上,通過SDK(軟件開發工具包)接口調用,可方便地實現各種SDK中提供的功能。目前,使用Python編程語言的用戶群體非常大,對該語言進行支持,可方便用戶利用SDK的Python接口使用SDK提供的功能。通常,支持SDK的Python接口方法是基于已開放的其他語言,如C++的接口,對這些接口逐一進行手動編碼綁定,無疑這個工作量是巨大的,耗時費力,且容易出錯。

    技術實現思路

    [0003]專利技術目的:本專利技術的目的是提出一種SDK導出Python接口的方法、裝置、設備及介質,能夠提高SDK導出Python接口的效率,避免手動編程過程中容易出錯的問題。
    [0004]技術方案:本專利技術第一方面,提供一種SDK導出Python接口的方法,包括:
    [0005]根據SDK的C++接口創建Python的接口類并與其進行綁定,生成關聯Python類型的STL標準模板庫列表和C++類列表;
    [0006]根據STL標準模板庫列表進行STL標準模板庫綁定;
    [0007]根據C++類列表進行C++接口參數類綁定;
    [0008]編譯所有生成的文件并鏈接為庫文件輸出。
    [0009]進一步地,在接口綁定時,對于使用引用作為參數的接口,將返回值設為tuple類型,將引用參數作為tuple中的一個成員返回。
    [0010]進一步地,在進行STL標準模板庫綁定時,遍歷生成的STL標準模板庫列表,針對每一個模板類型創建一個單獨的模板文件,將STL標準模板庫導出。每個類創建一個文件可以避免編譯過程對資源的過度消耗。
    [0011]進一步地,在進行C++接口參數類綁定時,遍歷生成的C++類列表,針對每一個C++類分別創建代碼文件,將C++類導出。每個類創建一個文件可以避免編譯過程對資源的過度消耗。
    [0012]以上對每一個STL模板類型創建單獨的模板文件,每一個C++類分別創建代碼文件,可以避免編譯過程對資源的過度消耗導致的內存不足問題,同時可以在某些類發生變化時單獨編譯對應的文件,實現增量編譯,減少編譯時間。
    [0013]進一步地,所有生成的文件都存放在SDK的目錄下,不對原C++中的接口或類作修改,這樣可避免對原有代碼的修改及維護。
    [0014]進一步地,編譯所有生成的文件并鏈接為庫文件輸出,包括:對所有生成的文件進行編譯并靜態鏈接為靜態庫文件,隨后從該靜態庫文件和所有依賴的靜態庫文件中提取所有的.o對象文件,最后將所有.o文件通過動態鏈接的方式鏈接為.so動態鏈接庫。
    [0015]本專利技術第二方面提供一種SDK導出Python接口的裝置,包括:
    [0016]接口綁定模塊,根據SDK的C++接口創建Python的接口類并與其進行綁定;
    [0017]STL標準模板庫綁定模塊,用于生成關聯Python類型的STL標準模板庫列表,根據該STL標準模板庫列表進行STL標準模板庫綁定;
    [0018]C++接口參數類綁定模塊,用于生成關聯Python類型的C++類列表,根據該C++類列表進行C++接口參數類綁定;
    [0019]編譯及庫文件生成模塊,用于編譯所有生成的文件并鏈接為庫文件輸出。
    [0020]本專利技術第三方面提供一種SDK導出Python接口的設備,包括處理器和存儲器;
    [0021]所述存儲器,用于存儲計算機程序;
    [0022]所述處理器,用于執行所述計算機程序以實現上述第一方面的方法。
    [0023]本專利技術第四方面提供一種計算機可讀存儲介質,用于存儲計算機程序,所述計算機程序被計算機執行時,實現上述第一方面的方法。
    [0024]本專利技術第五方面提供一種計算機程序產品,當所述計算機程序產品在計算機上運行時,使得計算機執行上述第一方面的方法。
    [0025]有益效果:本專利技術與現有技術相比,具有如下顯著優點:能夠提高SDK導出Python接口的效率,減輕開發工作量,不易出錯,且后期添加接口或維護也比較方便。
    附圖說明
    [0026]為了更清楚地說明本專利技術實施例的技術方案,下面對本專利技術實施例中所需要使用的附圖作簡單介紹,顯而易見地,下面所描述的附圖僅僅是本專利技術的實施例,對于本領域普通技術人員來說,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
    [0027]圖1是SDK導出Python接口的裝置模塊結構圖;
    [0028]圖2是SDK文件夾目錄示意圖;
    [0029]圖3是編譯及庫文件生成流程框圖。
    具體實施方式
    [0030]下面將結合本專利技術實施例中的附圖,對本專利技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例不是全部的實施例。基于本專利技術中的實施例,本領域技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本專利技術的保護范圍。
    [0031]本申請實施例提供的一種SDK導出Python接口的方法,其基于現有C++語言的調用接口,首先將現有C++接口綁定并導出為Python可以使用的接口;隨后把接口中關聯的STL標準模板庫、C++接口參數類也綁定導出為Python中的類,方便Python用戶的使用;最后將上述生成的代碼編譯,從靜態編譯庫文件中提取模板文件,并動態編譯為.so格式的Python庫。
    [0032]下面對該SDK導出Python接口的方法作具體介紹。
    [0033]圖2所示為SDK文件夾目錄示意圖,包括頭文件目錄21、庫文件目錄22、STL標準模板庫綁定目錄23、C++接口參數類綁定目錄24和C++源代碼目錄25。
    [0034]SDK導出Python接口的方法,包括:
    [0035]接口綁定,根據SDK的C++接口創建Python的接口類并與其進行綁定,生成關聯
    Python類型的STL標準模板庫列表,生成關聯Python類型的C++類列表;其中,生成關聯Python類型的STL標準模板庫列表,是將在C++中定義的,如vector、map等類型,綁定并導出為Python類型;生成關聯Python類型的C++類列表,是將將接口中關聯的C++類自動綁定并導出為Python類型。
    [0036]默認的C++接口以及SDK核心代碼在C++源代碼目錄25下,軟件程序在找到所有待導出的接口后,根據Boost.Python、pybind11等第三方Python的綁定庫的格式要求,創建Python函數接口的綁定。本實施例中,使用pybind11。
    [0037]在接口綁定時,對于使用引用作為參數的接口,由于Python對引用參數并不支持,為了將該引用能夠傳遞到Python中使用,返回值設為tuple類型,將引用參數作為tuple中的一個成員返回,這樣Python就可以從tuple中獲得該參數的結果值。<本文檔來自技高網
    ...

    【技術保護點】

    【技術特征摘要】
    1.SDK導出Python接口的方法,其特征在于,包括:根據SDK的C++接口創建Python的接口類并與其進行綁定,生成關聯Python類型的STL標準模板庫列表和C++類列表;根據STL標準模板庫列表進行STL標準模板庫綁定;根據C++類列表進行C++接口參數類綁定;編譯所有生成的文件并鏈接為庫文件輸出。2.根據權利要求1所述的方法,其特征在于,在接口綁定時,對于使用引用作為參數的接口,將返回值設為tuple類型,將引用參數作為tuple中的一個成員返回。3.根據權利要求1所述的方法,其特征在于,在進行STL標準模板庫綁定時,遍歷生成的STL標準模板庫列表,針對每一個模板類型創建一個單獨的模板文件,將STL標準模板庫導出。4.根據權利要求1所述的方法,其特征在于,在進行C++接口參數類綁定時,遍歷生成的C++類列表,針對每一個C++類分別創建代碼文件,將C++類導出。5.根據權利要求1所述的方法,其特征在于,所有生成的文件都存放在SDK的目錄下,不對原C++中的接口或類作修改。6.根據權利要求1或5所述的方法,其特征在于,編譯所有生成的文件并鏈接為庫文件輸出,包括:對所有生成的文件進行編譯并靜態鏈...

    【專利技術屬性】
    技術研發人員:劉生林巧趙迎瑞李松領何杏興
    申請(專利權)人:南京熊貓電子裝備有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产精品va无码二区| 亚洲爆乳少妇无码激情| 久久久久久av无码免费看大片| 国产乱子伦精品免费无码专区| 一级毛片中出无码| 精品无码久久久久久尤物| 无码一区二区三区中文字幕| 亚洲gv猛男gv无码男同短文| 亚洲爆乳少妇无码激情| 久久午夜无码免费| 色欲AV无码一区二区三区 | 日日摸日日碰夜夜爽无码| 亚洲综合一区无码精品| 亚洲av无码无在线观看红杏| 国产AV天堂无码一区二区三区 | 成人无码精品一区二区三区| 亚洲AV永久无码精品一百度影院| 国产精品白浆在线观看无码专区 | 人妻中文字幕AV无码专区| 精品少妇无码AV无码专区| 亚洲Av综合色区无码专区桃色| 国产成人无码a区在线视频| 国产精品无码久久久久久久久久| 久久水蜜桃亚洲av无码精品麻豆| 亚洲成a人片在线观看无码专区| 国产在线无码视频一区| 67194成是人免费无码| 免费无码不卡视频在线观看| 无码国产精品久久一区免费 | 中文午夜乱理片无码| 免费无遮挡无码永久在线观看视频 | 亚洲?V无码成人精品区日韩 | 精品深夜AV无码一区二区| 无码精品国产VA在线观看| 丰满熟妇人妻Av无码区| 无码国产福利av私拍 | 亚洲高清无码专区视频| 亚洲中文字幕无码爆乳av中文| 国产精品白浆在线观看无码专区| 免费无码又爽又刺激高潮的视频| 免费A级毛片无码A∨男男|