编译SoapySDRPlay2时libmirsdrapi-rsp.so依赖构建错误求助
树莓派编译SoapySDRPlay2时Make报错的解决方法
问题重现
执行make命令时触发错误:
make[2]: *** No rule to make target '/usr/local/lib/libmirsdrapi-rsp.so', needed by 'libsdrPlaySupport.so'. Stop.
已确认/usr/local/lib/libmirsdrapi-rsp.so是指向/usr/local/lib/libmirsdrapi-rsp.so.2的有效软链接。
排查与解决步骤
1. 修正CMake配置对库文件的识别
CMake可能无法正确解析软链接,需修改SoapySDRPlay2的CMakeLists.txt:
- 找到类似
find_library(LIBSDRPLAY_LIBRARY NAMES mirsdrapi-rsp)的配置行 - 修改为
find_library(LIBSDRPLAY_LIBRARY NAMES mirsdrapi-rsp.so.2) - 重新执行
cmake ..和make
2. 刷新系统库缓存
树莓派可能未识别新安装的库,执行命令更新缓存:
sudo ldconfig
完成后重新编译。
3. 手动指定库路径编译
若CMake仍无法定位库,编译时直接指定实际库文件路径:
cmake .. -DLIBSDRPLAY_LIBRARY=/usr/local/lib/libmirsdrapi-rsp.so.2 make
4. 验证SDRPlay驱动完整性
确认驱动文件完整存在:
- 执行
ls -l /usr/local/lib/libmirsdrapi-rsp*,检查是否有libmirsdrapi-rsp.so.2及对应的实际版本文件(如libmirsdrapi-rsp.so.2.13.1) - 若文件缺失,重新下载适配树莓派ARM架构的SDRPlay官方驱动并安装
5. 清理编译缓存后重建
旧缓存可能残留错误配置,执行以下步骤重置编译环境:
make clean rm -rf CMakeCache.txt CMakeFiles/ cmake .. make
内容的提问来源于stack exchange,提问作者kellogs
相关产品推荐
相关产品推荐

