2

在我的 OOT 模块中,我编写了一个“noblock”类型的函数,我想将它导入 GRC。

编译过程和安装都很顺利,我可以使用我在 python 中使用import my_module as mmand编写的函数mm.my_python_function()

但这不适用于 C++ 中的那个,我有错误消息:

参数 - 值(值):无法评估值“my_module.my_cpp_function()”:“模块”对象没有属性“my_cpp_function”

请问我缺少什么?这和swig有什么关系吗?如何设置?谢谢你。

注意:我正在运行 Ubuntu 14.04,并且已经使用 PyBombs 安装了 GRCprefix = /usr/local

4

1 回答 1

0

听起来您已经很接近了,并且该 swig 设置正确。在过去的两天里,我一直在与这个作斗争,并提出了一种我认为模仿 gr-digital 所做的方法。但是,在我把它全部拼出来之前,您是否尝试过将“导入”块添加到 GRC,然后输入“import my_module”作为其“导入”?

我有点假设是因为您能够在 python 中导入和使用该模块。

您是否创建了类似 swig/my_module.i 的东西?按照 gr-digital/swig/packet_header.i 作为模板。然后确保 swig/CMakeLists.txt 在最后的 install() 语句中包含 my_module.i;再次,查看 gr-digital/swig/CMakeLists.txt 以获得指导。

最后,确保你的 swig/_swig.i 包括

#include "<module_name>/my_module.h"

然后

%include "<module_name>/my_module.h"

在文件末尾

%include "my_module.i"

同样,请参阅 gr-digital/swig/digital_swig.i 以获取使用 packet_header 的示例。

于 2016-04-14T21:42:35.347 回答