提问人:AAUDI 提问时间:11/8/2023 最后编辑:AAUDI 更新时间:11/9/2023 访问量:81
使用 pybind11 绑定 C++ 库 - 导入错误
Binding a C++ library using pybind11 - ImportError
问:
我正在尝试使用 pybind11 绑定 c++ 库。 编译效果很好,但是当我尝试将 .so 文件导入 python 文件时出现错误:
from project_pybind11 import *
我有这个错误:
from project_pybind11 import *
ImportError: generic_type: type "class_derived" referenced unknown base
type "NAMESPACE::class_derived"
你知道这个错误的根源吗?或我如何获取有关此错误的更多详细信息或信息。
我以这种方式绑定我的班级:
PYBIND11_MODULE(project_pbind11,m) {
py::class_<Pyclass_derived, NAMESPACE::class_derived, NAMESPACE::class_base>(m, "class_derived")
.def(py::init<>())
.def(py::init<const NAMESPACE::S_UINT32>(), py::arg("classnameId"))
.def("method1", &Pyclass_derived::method1);
.....;
}
我的类.cpp是:
namespace NAMESPACE
{
class class_derived: public class_base
{
public:
class_derived();
class_derived(const NAMESPACE::S_UINT32 classderivedId);
virtual void method1();
...
};
}
Pyclass_derived是我实现的一个类,用于考虑虚拟方法。
class Pyclass_derived: public NAMESPACE::class_derived{
public:
using NAMESPACE::class_derived::class_derived;
void method1() override { PYBIND11_OVERRIDE(void,
NAMESPACE::class_derived, method1); }
};
}
答: 暂无答案
评论