Auto bind Python from CC++ ===================
Um projeto suficientemente simples, fácil de usar e configurável para vincular automaticamente código C/C++ ao Python e gerar pacotes whl
Este projeto foi clonado de:https://github.com/Neutree/c_cpp_project_framework E a parte de compilação de código permanece igual ao repositório original
Código de referência para ligação automática com pybind11:https://github.com/sipeed/MaixPy/tree/main/components/maix
Guia Rápido
- 1. Clone este repositório e acesse o diretório /examples/demo
x86 corresponde à compilação local, arm64 corresponde à compilação para MaixCam2, e RISCV64 corresponde à compilação para MaiCam/Pro
- 2. Escreva uma função em C/C++ e um arquivo de cabeçalho hpp, o nome do arquivo deve ser igual ao do pacote whl para facilitar o reconhecimento automático:
C++
namespace add::test
{
int add(int a, int b)
{
return a + b;
}
}
Para a função correspondente, escreva a anotação @modul, seguida pelo caminho da função:
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);
}
A primeira linha é a introdução da função, @param é a introdução do parâmetro, @return é a introdução do valor de retorno (pode ser vazio)
Se você só precisa compilar e empacotar como arquivo whl, não é necessário modificar o main.cpp
Basta usar python project build para começar a compilar e empacotar o arquivo whl
Após a instalação do arquivo whl compilado, pode ser chamado diretamente:
Python
import add
add.test.add(1,1)
``
Atenção:
- Um arquivo de cabeçalho representa um nome de módulo, indicando o módulo a ser importado, por exemplo, add.hpp corresponde a import add, e o nome do módulo deve começar com add
- Executar diretamente cpp_bind_python.py gera apenas o arquivo cpp vinculado; adicionar o parâmetro --doc DOC pode gerar automaticamente a documentação a partir dos comentários