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 的信息,请访问我们的官方文档。