【问题标题】:GNU Radio error "This block does not support C++ output"GNU Radio 错误“此块不支持 C++ 输出”
【发布时间】:2022-01-24 18:44:57
【问题描述】:

我在 GNU Radio 伴侣 3.8.1.0 上编写了一个程序,当我选择 Python 语言时它运行良好。

但是,当我选择 C++ 输出语言时,我得到了错误

此块不支持 C++ 输出

用于块 WBFM Receive、osmocom 源和有理重采样器。

你能告诉我如何解决这个问题吗?

【问题讨论】:

    标签: gnuradio gnuradio-companion


    【解决方案1】:

    正如错误消息所说,这些块不支持 C++ 输出。

    GRC 的工作是将流程图的图形表示转换为程序 - 在(默认)Python 中,这是实例化所有块、设置流程图、连接所有块并告诉 GNU Radio 的 Python 代码运行流程图。

    在C++模式下,生成的代码是C++。

    为了使任何一个工作,这些块的开发人员需要编写模板,以便将需要插入到结果程序中的内容。

    对于 GNU Radio 带来的许多树内块,Python 和 C++ 都发生了这种情况。然而,对于WBFM receive,这不可能发生——块本身就是一个 Python 分层块!用 C++ 封装是不可能的(大多数块都是用 C++ 编写并为 Python 封装的。很难绕过)。

    对于 Rational Resampler 也是如此,这是一个 Python hier 块,可根据需要计算重采样器的过滤器抽头。如果我没记错的话,还有 osmocom 块。

    因此,由于所有这些都是用 Python 编写的,所以无论如何,如果没有 Python,您将无法使用它们。

    请注意,从 C++ 与 Python 构建流程图的性能优势为零:从 Python 端所做的所有事情就是告诉 GNU Radio 要创建、连接和运行什么。所有的信号处理都是在 C++ 代码中完成的(除非你写了一个 Python 块,但是你很少会在任何信号处理代码中找到这些)。

    【讨论】:

    • 您好,感谢您的解释。在这种情况下,我将继续使用我的 python 版本的 grc。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2016-05-17
    • 2017-01-21
    • 2019-12-16
    • 2019-02-12
    • 2016-02-25
    • 2021-07-29
    相关资源
    最近更新 更多