python - 如何使用 pybind11 进行绑定(bind)?

标签 python c++ pybind11

这是我的程序结构:

enter image description here

我正在尝试将我的 C++ 程序与 Python 中的 GUI 绑定(bind)。我正在使用 pybind11 并且我有一个用于绑定(bind)的 python_binding.cpp 文件和一些“.h”和“.cpp”以及其他目录中的方法。我包含了“.h”文件,但不知何故 python_binding.cpp 无法识别它们。

文件 config.cpp 只有一个无效方法,“cargar_configuracion()”,它在绑定(bind)中是这样的:

#include "Ejemplo/config.h"

PYBIND11_MODULE(Example, m) {
m.doc() = "Binding"; // optional module docstring


m.def("cargar_configuracion", &cargar_configuracion);

此操作的结果是以下错误:

undefined reference to `cargar_configuracion()'

我做错了什么?我是否应该将 .cpp 和 .h 与 binding.cpp 放在同一目录中?

提前致谢!

最佳答案

您的 pybind11 看起来不错,这是一个链接器错误。看起来 config.cpp 在您的解决方案中的另一个项目中,并且正在单独的可执行文件中构建。您在这里有两个选择,要么将 config.cpp 复制到同一目录,要么将 Ejemplo 重新配置为静态库,并在 python 包装器项目的属性中将其指定为依赖项。

关于python - 如何使用 pybind11 进行绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52038375/

相关文章:

python - 重新打开窗口抛出 Gtk-CRITICAL ** : gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed

python - 获取node下所有文本节点的绝对xpath

c++ - 有没有可能 : Using multiple threads to stream output to different files/

python - 如何使用 pybind11 正确编译 c++ 代码

python - 有人可以解释 pybind11 安装吗?

python - 运行时获取python.exe路径

python - 如何使用 SciPy 仅返回模式

c++调用图,但作为文本

c++ - 从日志文件中找到最常见的字符串

python - 在 C++ 中使用 pybind11 包装器时出现段错误