自動從CC++綁定Python ===================
一個足夠簡單易用且可配置的工程,用於自動將C/C++程式碼綁定為Python程式碼並生成whl套件
本專案複製自:https://github.com/Neutree/c_cpp_project_framework 且編譯程式碼部分與原始倉庫保持一致
pybind11自動綁定部分參考代碼:https://github.com/sipeed/MaixPy/tree/main/components/maix
快速上手
- 1.克隆本倉庫,進入/examples/demo目錄
其中x86對應為本機編譯,arm64對應為MaixCam2編譯,RISCV64對應為MaiCam/Pro編譯
- 2.寫一個C/C++函式,以及hpp標頭檔,需以whl套件名稱為檔案名,方便自動識別:
C++
namespace add::test
{
int add(int a, int b)
{
return a + b;
}
}
為對應的函數寫上@modul註釋,後面跟上函數路徑:
C++
namespace add::test
{
/
- My function, add two integer.
- @param a arg a, int type
- @param b arg b, int type
- @return int type, will a + b
- @module add.test.add
*/
int add(int a, int b);
}
其中第一行為函數介紹,@param為參數介紹,@return為返回值介紹(可空)
如果只需要編譯並打包為whl檔案則無需修改main.cpp
使用python project build即可開始編譯並打包whl檔案
編譯後安裝whl檔案後即可直接調用:
Python
import add
add.test.add(1,1)
``
注意:
- 一個頭文件代表一個模組名,表示要 import 的模組,例如 add.hpp 對應 import add,其模組名必須以 add 開頭
- 直接執行 cpp_bind_python.py 可以只生成綁定後的 cpp 檔案,添加 --doc DOC 參數可以自動從註釋生成文件