Pybind11 是一个 C++ 库,它允许你将 C++ 代码暴露给 Python,使得你可以使用 Python 调用 C++ 代码。CMake 是一个跨平台的安装(编译)工具,它可以用来管理软件项目构建。本节将介绍如何将 Pybind11 集成到 CMake 项目中。

安装 Pybind11

首先,你需要在你的项目中安装 Pybind11。你可以通过以下命令来安装:

pip install pybind11

创建 CMake 项目

接下来,你需要在你的项目中创建一个 CMakeLists.txt 文件。这个文件将用于配置 CMake 如何构建你的项目。

cmake_minimum_required(VERSION 3.4)
project(MyProject)

find_package(pybind11 REQUIRED)

add_executable(MyProject main.cpp)

target_link_libraries(MyProject PRIVATE pybind11::core)

在这个例子中,我们创建了一个名为 MyProject 的项目,并添加了一个名为 main.cpp 的源文件。我们使用 find_package 命令来查找 Pybind11,并使用 target_link_libraries 命令将 Pybind11 的核心库链接到我们的可执行文件。

编写 Python/Pybind11 代码

现在你已经配置好了 CMake,你可以开始编写 Python/Pybind11 代码了。以下是一个简单的例子:

#include <pybind11/pybind11.h>

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

PYBIND11_MODULE(example, m) {
    m.def("add", &add, "A function which adds two numbers");
}

在这个例子中,我们定义了一个名为 add 的函数,它将两个整数相加。我们使用 PYBIND11_MODULE 宏来创建一个名为 example 的 Python 模块,并将 add 函数暴露给 Python。

构建

要构建你的项目,你可以使用以下命令:

mkdir build
cd build
cmake ..
make

这将生成一个名为 MyProject 的可执行文件,你可以使用 Python 来调用它:

import example

print(example.add(1, 2))

更多关于 Pybind11 和 CMake 的信息,请访问我们的官方文档

Pybind11