使用Pybind11将c++第三方库编译为动态链接库

  1. 首先编写一个cpp文件,名字为"add_func.cpp",内容如下:
cpp 复制代码
#include <pybind11/pybind11.h>
#include <iostream>

namespace py = pybind11;
int add(int i, int j){
    return i+j;
}

void inadd(){
    int a, b;
    std::cin>>a>>b;
    std::cout<<a+b;
}

PYBIND11_MODULE(add_func, m){
    m.doc() = "pybind11 example plugin";
    m.def("add", &add, "A function which adds two numbers");
    m.def("inadd", &inadd, "cin and cout");
}
  1. 在终端输入:
bash 复制代码
c++ -O3 -Wall -shared -std=c++11 -fPIC $(python3 -m pybind11 --includes) add_func.cpp -o add_func$(python3-config --extension-suffix)

编译完成后,该文件夹下就会出现一个名为add_func.cpython-39-x86_64-linux-gnu.so的文件夹

  1. 此时在该文件夹下打开终端,输入python
python 复制代码
import add_func

add_func(1, 2)

此时终端就会打印出3

相关推荐
陈晓明start4 分钟前
【python】豆包模型,自动生成测试用例初探索
python
Zarek枫煜5 分钟前
C3 编程语言 - 现代 C 的进化之选
c语言·开发语言·青少年编程·rust·游戏引擎
阿kun要赚马内16 分钟前
Python中元组和列表差异:底层结构分析
开发语言·python
万添裁41 分钟前
pytorch的张量数据结构以及各种操作函数的底层原理
人工智能·pytorch·python
筱璦44 分钟前
期货软件开发 - C# 调用 HQChart 指标计算 C++ 动态库
c++·microsoft·c#
浔川python社1 小时前
张雪机车:以热爱为轮,让中国摩托驰骋世界之巅
python
zl_dfq1 小时前
Python学习5 之【字符串】
python·学习
ZC跨境爬虫1 小时前
Python异步IO详解:原理、应用场景与实战指南(高并发爬虫首选)
爬虫·python·算法·自动化
不想写代码的星星1 小时前
C++ 内存管理:分区、自定义分配器、常见问题与检测工具
c++