pybid 11 로 C++실 현 된 함수 라 이브 러 리 를 봉인 하 는 방법 예시
3236 단어 pybind11C++함수 라 이브 러 리
실현 절차
코드 구현
1.C++함수 로 함수 기능 구현
// :add.cpp
extern "C" double add(double in1, double in2)
{
return in1 + in2;
}
// :sub.cpp
extern "C" double sub(double in1, double in2)
{
return in1 - in2;
}
// :mul.cpp
extern "C" double mul(double in1, double in2)
{
return in1 * in2;
}
// :div.cpp
extern "C" double div1(double in1, double in2)
{
return in1 / in2;
}
2.헤더 파일 을 작성 하고 함수 의 설명 을 헤더 파일 에 포함 합 니 다.
// :functions.h
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include <iostream>
using namespace std;
extern "C" double add(double, double);
extern "C" double sub(double, double);
extern "C" double mul(double, double);
extern "C" double div1(double, double);
#endif
3.pybid 11 패 키 징 함수 작성
// :functions_wrapper.cpp
#include <pybind11/pybind11.h>
#include "functions.h"
namespace py = pybind11;
PYBIND11_MODULE(functions, m){
m.doc() = "Simple Class";
m.def("add", &add);
m.def("sub", &sub);
m.def("mul", &mul);
m.def("div", &div1);
}
4.파 이 썬 으로 setup 스 크 립 트 작성
# :setup.py
from setuptools import setup, Extension
functions_module = Extension(
name = 'functions',
sources = ['add.cpp', 'sub.cpp', 'mul.cpp', 'div.cpp', 'functions_wrapper.cpp'],
include_dirs = [r'D:\software\pybind11-master\include',
r'D:\software\Anaconda\include']
)
setup(ext_modules = [functions_module])
5.동적 링크 라 이브 러 리 pyd 파일 생 성명령 행 에서 실행 합 니 다
python setup.py build_ext --inplace
현재 경로 에서 pyd 동적 라 이브 러 리 를 생 성 합 니 다.6.테스트 함수 기능
# :test.py
import functions
print(functions.add(0.9, 3))
print(functions.sub(0.9, 3))
print(functions.mul(0.9, 3))
print(functions.div(0.9, 3))
output:3.9
-2.1
2.7
0.3
이 글 은 pybid 11 로 C++실 현 된 함수 라 이브 러 리 를 봉인 하 는 방법 에 관 한 글 입 니 다.더 많은 관련 pybid 11 패키지 C+실 현 된 함수 라 이브 러 리 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
pybid 11 윈도 에서 의 사용 강좌Pybid 11 은 현재 가장 편리 한 Python 에서 C++를 호출 하 는 도구 입 니 다.vs 2019 에 Python 의 확장 을 쓰 는 HelloWorld 를 소개 합 니 다. 2.1 출력 형식 을 dll ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.