Gnuradio 链接器标志

Gnuradio linker flag

编译时出现以下错误:

undefined reference to `gr::fft::window::blackman_harris(int, int)

我知道这个链接器错误是由于我的 g++ 命令中没有 gnuradio 链接器标志。问题是我一直找不到正确的,也试过-lgnuradio-lgr-fft(不存在)。

我尝试搜索 google,但我在使用 makefile 时只找到了与 CMake 相关的关于 gnuradio 的主题。有帮助吗?

如果你提供minimal example,我可以帮助你更多,这样我就多猜少了。
gnuradio 包中的特定库名称以 libgnuradio-[lib].so 开头,例如。在你的情况下 libgnuradio-fft.so,所以 -lgnuradio-fft

为了在发生更多链接问题时查找 gnuradio 库的其余部分:

  • 使用 pkg-config,gnuradio 公开正确的配置
  • 在您的系统路径中找到 gnuradio 库,具体取决于您的系统,例如。 /usr/lib、/usr/local/lib、/usr/lib64 或类似的。这样你就知道它的名字了。

我也有类似的问题,即使使用 -lgnuradio-fft。事实证明,我只在 /usr/lib/x86_64-linux-gnu/ 中安装了版本库(例如 libgnuradio-fft.so.3.8.2),因此在链接时找不到它们。

通过使用 apt-file search libgnuradio-fft.so,我意识到我只需要 apt install gnuradio-dev 而不是 gnuradio 包。