我有以下带有pybind11的基本cpp代码:
#include "pch.h"
#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");
}
这是我遵循的步骤(我使用的是没有 python 模块的 Visual Studio 17,我在 anaconda envs 中有单独的 python):
pybind11 中的文档没有指定编译器应该生成哪些文件类型,它应该是库文件还是 dll?除此以外,还有什么特殊的步骤需要遵循吗?
最佳答案
我想回应@pschill 的回答:
首先尝试使用受支持/记录在案的构建工具链,然后尝试在人迹罕至的地方做一些事情:
https://pybind11.readthedocs.io/en/master/compiling.html
我建议您使用 CMake,尝试您的示例代码的子集,然后使用详细选项(例如 make VERBOSE=1
)构建您的库,以查看添加的内容以及如何生成目标。
如果您仍想保留非 CMake 工作流程,则可以将相关标志移植到 VS2017。
(话虽如此,CMake 可能有生成 VS2017 项目文件的选项。)
关于python - 如何使用 pybind11 正确编译 c++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54908007/