SDR++ 编译记录

  1. 依赖
  2. 编译
  3. PipeWire JACK
  4. 参考

依赖

Arch Linux:

sudo pacman -S --needed \
  base-devel cmake fftw glfw volk zstd \
  airspy rtaudio hackrf rtl-sdr soapysdr \
  libiio libad9361 bladerf limesuite

额外设备库:

yay -S airspyhf-git libsdrplay

编译

git clone https://github.com/AlexandreRouma/SDRPlusPlus.git
cd SDRPlusPlus
mkdir build
cd build
cmake ..
make -j"$(nproc)"
cd ..

当时这版先复制一份运行目录:

cp -r root root_dev

先运行一次,让它在 root_dev 下生成 config.json、modules 和 res:

./build/sdrpp -r root_dev

再找出编译出来的模块:

find ./build -name '*.so' \
  | sed 's/^/"/' \
  | sed 's/$/",/' \
  | sed '/sdrpp_core.so/d'

把结果填进 root_dev/config.json 的 "modules": [],同时改这两个路径:

"modulesDirectory": "./root_dev/modules",
"resourcesDirectory": "./root_dev/res"

之后从项目根目录运行:

./build/sdrpp -r root_dev

SDR++ v1.1.0 运行界面

PipeWire JACK

终端启动后闪退或无音频,日志中出现:

RtApiJack::getDeviceInfo: error determining Jack input/output channels!
RtApiPulse::DeviceInfo pa_context_connect() failed: Connection refused
Could not open audio device

处理方法一是只对当前进程禁用 PipeWire JACK:

env PIPEWIRE_NOJACK=1 ./build/sdrpp -r root_dev

这样启动后可以正常打开并输出音频。另一种方法是用 PulseAudio 替换 pipewire-pulse:

sudo pacman -S pulseaudio

最后还是保留 pipewire-pulse,启动 SDR++ 时加 PIPEWIRE_NOJACK=1。

参考

SDRPlusPlus

Application hang and infinite loop using PipeWire


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:SDR++ 编译记录

字数:271

本文作者:

发布时间:2023-04-04, 00:52:00

最后更新:2026-08-26, 21:18:00

原始链接:https://cnlnn.pages.dev/posts/sdrpp-build-notes/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。