Auto bind Python dari CC++ ===================
Proyek yang cukup sederhana, mudah digunakan, dan dapat dikonfigurasi untuk secara otomatis mengikat kode C/C++ menjadi kode Python serta menghasilkan paket whl
Proyek ini dikloning dari:https://github.com/Neutree/c_cpp_project_framework dan bagian kompilasi kode tetap sama persis dengan repositori aslinya
Referensi kode untuk binding otomatis pybind11:https://github.com/sipeed/MaixPy/tree/main/components/maix
Mulai Cepat
- 1. Kloning repositori ini, masuk ke direktori /examples/demo
x86 adalah untuk kompilasi di mesin lokal, arm64 untuk kompilasi MaixCam2, RISCV64 untuk kompilasi MaiCam/Pro
- 2. Tulis sebuah fungsi C/C++, dan file header hpp, nama file harus sesuai dengan nama paket whl, agar mudah dikenali secara otomatis:
C++
namespace add::test
{
int add(int a, int b)
{
return a + b;
}
}
Tuliskan komentar @modul untuk fungsi terkait, diikuti dengan jalur fungsi:
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);
}
Baris pertama adalah pengenalan fungsi, @param adalah pengenalan parameter, @return adalah pengenalan nilai kembali (boleh kosong)
Jika hanya perlu mengompilasi dan membungkus menjadi file whl maka tidak perlu mengubah main.cpp
Gunakan python project build untuk mulai mengompilasi dan membungkus file whl
Setelah mengompilasi dan menginstal file whl, dapat langsung dipanggil:
Python
import add
add.test.add(1,1)
``
Catatan:
- Satu file header mewakili satu nama modul, menunjukkan modul yang akan di-import, misalnya add.hpp sesuai dengan import add, nama modulnya harus diawali dengan add
- Menjalankan cpp_bind_python.py secara langsung hanya akan menghasilkan file cpp yang sudah di-bind, tambahkan parameter --doc DOC untuk secara otomatis menghasilkan dokumentasi dari komentar