【问题标题】:How to import a function ("noblock") written in C++ into GRC如何将用 C++ 编写的函数(“noblock”)导入 GRC
【发布时间】:2016-06-15 21:31:31
【问题描述】:

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

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

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

Param - Value(value): Value "my_module.my_cpp_function()" 不能 评估:“模块”对象没有属性“my_cpp_function”

请问我错过了什么?这和swig有什么关系吗?如何设置?谢谢。

注意:我运行的是 Ubuntu 14.04,并且 GRC 已使用 PyBombs 和 prefix = /usr/local 安装

【问题讨论】:

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


    【解决方案1】:

    听起来您已经很接近了,并且该 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 的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 2020-06-03
      • 2023-02-26
      • 1970-01-01
      • 2011-01-15
      相关资源
      最近更新 更多