欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

pybind11 学习 | 使用 CMake 构建系统并生成 pyd 文件 - II 通过 CMake 生成 Pyd 文件

最编程 2024-07-15 09:16:26
...

项目结构如下:

在这里插入图片描述

其中pybind11文件夹为从github上克隆的pybind11源码。

CMakeLists.txt

cmake_minimum_required(VERSION 3.4)
project(example)

add_subdirectory(pybind11)
pybind11_add_module(example example.cpp)

pybind11_add_module是pybind11提供的一个CMake函数,用于简化pybind11项目的生成Python拓展模块的流程。pybind11_add_module语法如下:

pybind11_add_module(<name> [MODULE | SHARED] [EXCLUDE_FROM_ALL]
                    [NO_EXTRAS] [THIN_LTO] [OPT_SIZE] source1 [source2 ...])

在项目源文件目录下,打开windows终端,执行下面命令:

mkdir build
cd build
cmake ..

在cmake构建系统命令打印的结果中有下面一段:

-- Found PythonInterp: D:/anaconda3/envs/Mx_yolov3/python.exe (found suitable version "3.7.10", minimum required is "3.6")
-- Found PythonLibs: D:/anaconda3/envs/Mx_yolov3/libs/python37.lib

其中PythonInterpPythonLibs是pybind11自动寻找的,前提是已经在系统环境变量中添加了Python路径。生成的build文件夹目录如下:
在这里插入图片描述

其中将example.sln通过VS打开,在VS中生成解决方案即可生成pyd文件。

在这里插入图片描述

当然,我们也可以直接通过在终端中输入如下命令,直接生成pyd文件。

mkdir build
cd build
cmake ..
cmake --build .