CC++'dan Python'a Otomatik Bağlama ===================
C/C++ kodlarından Python koduna otomatik olarak bağlama ve whl paketi oluşturma için yeterince basit, kullanışlı ve yapılandırılabilir bir proje
Bu proje şu depodan çatallanmıştır:https://github.com/Neutree/c_cpp_project_framework ve derleme kodu kısmı orijinal depo ile tamamen uyumludur
pybind11 otomatik bağlama kısmı için referans kodu:https://github.com/sipeed/MaixPy/tree/main/components/maix
Hızlı Başlangıç
- 1. Bu depoyu klonlayın ve /examples/demo dizinine girin
Burada x86 yerel makinede derleme içindir, arm64 MaixCam2 için derleme içindir, RISCV64 ise MaiCam/Pro için derleme içindir
- 2. Bir C/C++ fonksiyonu ve hpp başlık dosyası yazın, dosya adı whl paket adıyla aynı olmalıdır, böylece otomatik olarak tanınabilir:
C++
namespace add::test
{
int add(int a, int b)
{
return a + b;
}
}
İlgili fonksiyon için @modul açıklamasını yazın, ardından fonksiyon yolunu ekleyin:
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);
}
İlk satır fonksiyon tanıtımıdır, @param parametre tanıtımıdır, @return ise dönüş değeri tanıtımıdır (boş olabilir)
Sadece derleme ve whl dosyası olarak paketleme gerekiyorsa main.cpp dosyasını değiştirmenize gerek yoktur
python project build komutunu kullanarak derleme ve whl dosyası paketleme işlemini başlatabilirsiniz
Derleme sonrası whl dosyasını kurduktan sonra doğrudan çağırabilirsiniz:
Python
import add
add.test.add(1,1)
``
Dikkat:
- Bir başlık dosyası bir modül adını temsil eder, içe aktarılacak modülü belirtir, örneğin add.hpp dosyası import add ile eşleşir, modül adı mutlaka add ile başlamalıdır
- cpp_bind_python.py doğrudan çalıştırılırsa sadece bağlanmış cpp dosyası oluşturulur, --doc DOC parametresi eklenirse açıklamalardan otomatik olarak dokümantasyon oluşturulabilir