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
其中PythonInterp
和PythonLibs
是pybind11自动寻找的,前提是已经在系统环境变量中添加了Python路径。生成的build
文件夹目录如下:
其中将example.sln
通过VS打开,在VS中生成解决方案即可生成pyd
文件。
当然,我们也可以直接通过在终端中输入如下命令,直接生成pyd文件。
mkdir build
cd build
cmake ..
cmake --build .
推荐阅读
-
函数定义和使用的 Python 语法基础 - I. 函数定义
-
Linux 系统基本命令及其使用详解手册(九) - 名称: lprm
-
python 的迭代器和生成器有什么区别?
-
总奖金高达10万元!华为算法精英训练营 "亲和任务调度系统 "在这里!
-
JavaEE 一站式学习 ---- 前端系统介绍(一)
-
服务器数据恢复 - 因硬盘坏道导致 Linux 系统服务器数据丢失的数据恢复案例
-
水库大坝安全监测和预警系统大坝安全防护装置
-
HarmonyOS 开发深色模式适应性 - 情景 2:不跟随系统变化
-
云 Lan 到家,使用 Elasticsearch 实现服务的搜索功能,使用 Canal + MQ 完成服务信息与 ES 索引的同步。
-
电子建立桌面应用程序,服务于项目的自主学习记录(不断更新...