繁体   English   中英

如何使用pybind11进行绑定?

[英]How to bind using pybind11?

这是我程序的结构:

在此处输入图片说明

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

文件config.cpp只有一个void方法“ cargar_configuracion()”,这就是绑定中的样子:

#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包装器项目属性中的依赖项。

从以下位置更改代码:

bViewResult = QtWidgets.QPushButton('View Results', self) 
bViewResult.clicked.connect(self.openCSV)

至:

bViewResult = QtWidgets.QPushButton('View Results', self)
bViewResult.clicked.connect(cargar_configuracion())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM