我想使用SoapySDR编写C代码来控制我的LimeSDR USB。但是,似乎未安装SoapySDR,但在安装驱动程序时应将其包括在内。

因此,首先,使用Wiki中的步骤安装LimeSDR硬件的驱动程序,如下所示:

sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt-get update
sudo apt-get install limesuite liblimesuite-dev limesuite-udev limesuite-images
sudo apt-get install soapysdr-tools soapysdr-module-lms7

#soapysdr-tools use to be called just soapysdr on older packages
sudo apt-get install soapysdr soapysdr-module-lms7

然后,我测试了以下命令:
$ SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.7.1-myriadrf1~ubuntu18.04
API Version: v0.7.1
ABI Version: v0.7
Install root: /usr
Search path:  /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7
Search path:  /usr/local/lib/x86_64-linux-gnu/SoapySDR/modules0.7   (missing)
Search path:  /usr/local/lib/SoapySDR/modules0.7                    (missing)
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7/libLMS7Support.so (19.01.0)
Available factories... lime
Available converters...
-  CF32 -> [CF32, CS16, CS8, CU16, CU8]
-  CS16 -> [CF32, CS16, CS8, CU16, CU8]
-  CS32 -> [CS32]
-   CS8 -> [CF32, CS16, CS8, CU16, CU8]
-  CU16 -> [CF32, CS16, CS8]
-   CU8 -> [CF32, CS16, CS8]
-   F32 -> [F32, S16, S8, U16, U8]
-   S16 -> [F32, S16, S8, U16, U8]
-   S32 -> [S32]
-    S8 -> [F32, S16, S8, U16, U8]
-   U16 -> [F32, S16, S8]
-    U8 -> [F32, S16, S8]

当我尝试运行一个简单的代码时:
  #include <SoapySDR/Device.h>
  #include <SoapySDR/Formats.h>
  #include <stdio.h> //printf
  #include <stdlib.h> //free
  #include <complex.h>

  int main(void)
  {
     size_t length;

     //enumerate devices
     SoapySDRKwargs *results = SoapySDRDevice_enumerate(NULL, &length);
     for (size_t i = 0; i < length; i++)
    {
       printf("Found device #%d: ", (int)i);
       for (size_t j = 0; j < results[i].size; j++)
       {
          printf("%s=%s, ", results[i].keys[j], results[i].vals[j]);
       }
       printf("\n");

    printf("Done\n");
    return EXIT_SUCCESS;
  }

我编译如下
  gcc -std=c99 API_example.c -lSoapySDR && ./a.out

我收到以下错误:
  API_example.c:1:10: fatal error: SoapySDR/Device.h: No such file or directory
  #include <SoapySDR/Device.h>
           ^~~~~~~~~~~~~~~~~~~

有人知道如何解决它吗?

最佳答案

几分钟前,我遇到了完全相同的问题。完全按照本指南进行操作即可。 https://github.com/pothosware/SoapySDR/wiki/BuildGuide#ubuntu

我假设您正在运行一个debian发行版,但是如果没有,该指南也将为您提供帮助。

须藤apt-get install cmake g++

须藤apt-get install libpython-dev python-numpy swig

git clone https://github.com/pothosware/SoapySDR.git

光盘SoapySDR

mkdir构建

光盘制作

cmake ..

使-j4

须藤使安装

sudo ldconfig#在Debian系统上需要

SoapySDRUtil-信息

现在您应该可以编译了。即使我以为已安装它,也遇到了与您相同的问题。试一下,它应该可以帮助您。

关于c - 如何使用LimeSDR USB正确安装SoapySDR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55850748/

10-10 13:41