اتصال خودکار پایتون از ++CC ===================
یک پروژه کافی ساده و قابل تنظیم برای تبدیل خودکار کدهای C/C++ به کد پایتون و تولید بسته 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 نیست
برای شروع کامپایل و بستهبندی فایل whl کافی است از python project build استفاده کنید
پس از نصب فایل whl کامپایلشده، میتوانید مستقیماً آن را فراخوانی کنید:
Python
import add
add.test.add(1,1)
``
توجه:
- یک فایل هدر نمایانگر یک نام ماژول است، به معنی ماژولی که باید import شود؛ برای مثال add.hpp معادل import add است و نام ماژول باید با add شروع شود.
- اجرای مستقیم cpp_bind_python.py تنها فایل cpp بایند شده را تولید میکند؛ با افزودن پارامتر --doc DOC میتوان به صورت خودکار مستندات را از توضیحات تولید کرد.