2 回答
TA贡献1794条经验 获得超7个赞
对于创建扩展模块的默认情况,您需要使用pybind11_add_module
命令(请参阅https://pybind11.readthedocs.io/en/stable/compiling.html#building-with-cmake )。
如果目标确实是将 Python 嵌入到可执行文件中,那么您有责任将 Python 头文件和库显式添加到 CMake 中的编译器/链接器命令中。(有关如何执行此操作,请参阅https://pybind11.readthedocs.io/en/stable/compiling.html#embedding-the-python-interpreter )
TA贡献1811条经验 获得超4个赞
按照Wenzel Jakob的回答,我想举一个示例CMakeLists.txt来编译本教程中提供的示例:
// example.cpp
#include <pybind11/pybind11.h>
int add(int i, int j) {
return i + j;
}
PYBIND11_MODULE(example, m) {
m.doc() = "pybind11 example plugin"; // optional module docstring
m.def("add", &add, "A function which adds two numbers");
}
和
# example.py
import example
print(example.add(1, 2))
和
# CMakeLists.txt
cmake_minimum_required(VERSION 2.8.12)
project(example)
find_package(pybind11 REQUIRED)
pybind11_add_module(example example.cpp)
现在在根运行
cmake .
make
现在运行python代码
python3 example.py
PS我还在这里写了一些关于编译/安装pybind11.
添加回答
举报