如何将用C ++编写的函数(“noblock”)导入GRC

时间:2016-03-02 20:16:41

标签: python c++ swig gnuradio gnuradio-companion

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

编译过程和安装进展顺利,我可以使用import my_module as mmmm.my_python_function()在python中编写的函数。

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

  

Param - Value(value):值“my_module.my_cpp_function()”不能   评估:'module'对象没有属性'my_cpp_function'

我缺少什么?这与swig有什么关系吗?如何设置?谢谢。

注意:我正在运行Ubuntu 14.04并使用PyBombs安装了GRC prefix = /usr/local

1 个答案:

答案 0 :(得分: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的示例。