Windows下使用pybind11教程(python调用C++代码)

1. 下载pybind11

gittub中下载,pybind下载后解压
Windows下使用pybind11教程(python调用C++代码)_第1张图片

2. C++生成库文件

  • 2.1.VS新建空白工程,工程名随意起

Windows下使用pybind11教程(python调用C++代码)_第2张图片

- 2.2更改目标文件名和配置类型

Windows下使用pybind11教程(python调用C++代码)_第3张图片

- 2.3更改目标文件拓展名

Windows下使用pybind11教程(python调用C++代码)_第4张图片

  • 2.4添加include路径和库路径
    Windows下使用pybind11教程(python调用C++代码)_第5张图片
    包含目录中添加刚刚下载好的pybind的include路径以及pyhon的include文件,这里我使用的时Anaconda的下python的include:
E:\Software\pybind11-master\include
E:\ProgramData\Anaconda3\include

库目录为:

E:\ProgramData\Anaconda3\libs

- 2.5添加依赖项

链接器中输入E:\ProgramData\Anaconda3\libs下的lib名
Windows下使用pybind11教程(python调用C++代码)_第6张图片
Windows下使用pybind11教程(python调用C++代码)_第7张图片

- 2.6添加main.cpp文件

Windows下使用pybind11教程(python调用C++代码)_第8张图片

#include "pybind11/pybind11.h"

int add(int i, int j)
{
	return i + j;
}

PYBIND11_MODULE(example, m)  // 模块名example
{
	m.doc() = "add plugin";
	m.def("add", &add, "add function  (i, j)"); // 函数名,函数地址,描述
}

注意main.cpp文件中PYBIND11_MODULE(example, m)的example要与目标文件名一致

- 2.7编译

Windows下使用pybind11教程(python调用C++代码)_第9张图片
无法启动是正常的,工程目录下的release路径找到example.pyd
Windows下使用pybind11教程(python调用C++代码)_第10张图片

3.Python调用

- 3.1python中安装pybind11

pip install pybind11 -i https://pypi.tuna.tsinghua.edu.cn/simple

将example.pyd放到与test.py同目录下

- 3.2运行test.py

import example
print(example.add(1,2))

在这里插入图片描述

你可能感兴趣的:(Python,windows,python,c++)