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

Python 如何导入用C+编写的函数(“noblock”)+;进入GRC,python,c++,swig,gnuradio,gnuradio-companion,Python,C++,Swig,Gnuradio,Gnuradio Companion,在我的OOT模块中,我编写了一个“noblock”类型的函数,我想将其导入GRC 编译过程和安装进行得很顺利,我能够使用我用python编写的函数,使用将我的模块导入为mm和mm.my_python_function() 但是这对C++中的一个不起作用,我有错误信息: Param-Value(Value):值“my_module.my_cpp_function()”不能为空 已计算:“模块”对象没有属性“我的cpp函数” 我错过了什么?这和swig有什么关系吗?如何设置它?多谢各位 注意:我运行

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

编译过程和安装进行得很顺利,我能够使用我用python编写的函数,使用
将我的模块导入为mm
mm.my_python_function()

<>但是这对C++中的一个不起作用,我有错误信息:

Param-Value(Value):值“my_module.my_cpp_function()”不能为空 已计算:“模块”对象没有属性“我的cpp函数”

我错过了什么?这和swig有什么关系吗?如何设置它?多谢各位


注意:我运行的是Ubuntu14.04,GRC是使用PyBombs安装的,前缀为
前缀=/usr/local
,听起来你很接近了,swig设置正确。在过去的两天里,我一直在努力解决这一问题,并提出了一种方法,我认为它模仿了gr digital中的做法。然而,在我详细说明之前,您是否尝试过向GRC添加“导入”块,然后输入“导入我的_模块”作为其“导入”

我假设是这样的,因为您能够导入并使用python中的模块

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

最后,确保你的饮用水包括

#include "<module_name>/my_module.h"
同样,请参阅gr digital/swig/digital_swig.i以获取使用数据包头的示例

%include "<module_name>/my_module.h"
%include "my_module.i"