我有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
)构建库,以查看包含get的内容以及生成目标的方式。
如果您仍想保留非CMake工作流程,则可以将相关标志移植到VS2017。
(话虽如此,CMake可能有生成VS2017项目文件的选项。)