Closed MountainLogic closed 3 years ago
That's a mismatch of Soapy libs. What version are you using? Soapy? srsLTE?
scottfoobar@foobar-pc:~/wip/srslte$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.2 LTS Release: 20.04 Codename: focal
foobar@foobar-pc:~/wip/srslte$ git branch -a
foobar@foobar-pc::~/wip/srslte$ git status On branch master Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add
nothing added to commit but untracked files present (use "git add" to track)
foobar@foobar-pc:~$ apt-cache policy soapy libsoapysdr-dev libsoapysdr-dev: Installed: 0.7.2-1 Candidate: 0.7.2-1 Version table: 0.7.2-1 500 500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages 100 /var/lib/dpkg/status N: Unable to locate package soapy foobar@foobar-pc:~$ apt-cache policy soapy libsoapysdr0.7 libsoapysdr0.7: Installed: 0.7.2-1 Candidate: 0.7.2-1 Version table: 0.7.2-1 500 500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages 100 /var/lib/dpkg/status N: Unable to locate package soapy foobar@foobar-pc:~$ soapy_power --version soapy_power 1.6.1
/usr/include/soapySDR/version.h starts with this:
///
/// \file SoapySDR/Version.h
///
/// Utility functions to query version information.
///
/// \copyright
/// Copyright (c) 2014-2018 Josh Blum
/// Copyright (c) 2016-2016 Bastille Networks
/// SPDX-License-Identifier: BSL-1.0
///
#pragma once
#include <SoapySDR/Config.h>
/*!
* API version number which can be used as a preprocessor check.
* The format of the version number is encoded as follows:
* <b>(major << 24) | (minor << 16) | (16 bit increment)</b>.
* Where the increment can be used to indicate implementation
* changes, fixes, or API additions within a minor release series.
*
* The macro is typically used in an application as follows:
* \code
* #if defined(SOAPY_SDR_API_VERSION) && (SOAPY_SDR_API_VERSION >= 0x00001234)
* // Use a newer feature from the SoapySDR library API
* #endif
* \endcode
*/
#define SOAPY_SDR_API_VERSION 0x00070001
/*!
* ABI Version Information - incremented when the ABI is changed.
* The ABI version format is <b>version[-extra]</b>.
* The <i>version</i> comes from the associated library major.minor version.
* And <i>extra</i> is empty for releases but set on development branches.
* The ABI should remain constant across patch releases of the library.
*/
#define SOAPY_SDR_ABI_VERSION "0.7"
What version is expected
I'm seeing the error with a clean clone of srsLTE.
in /usr/local/lib I have 0.8, hummm, but removing all of libsoapy-dev and reinstalling seemed to install a lot of 0.7 stuff. hummm?
lrwxrwxrwx 1 root root 18 Apr 6 11:38 libSoapySDR.so -> libSoapySDR.so.0.8 lrwxrwxrwx 1 root root 20 Apr 6 11:38 libSoapySDR.so.0.8 -> libSoapySDR.so.0.8.0 -rw-r--r-- 1 root root 632856 Apr 6 11:36 libSoapySDR.so.0.8.0
SO it turns out I some how have different versions of the libs installed: home/foobar/wip/SoapySDR/build/lib/libSoapySDR.so /home/foobar/wip/SoapySDR/build/lib/libSoapySDR.so.0.8 /home/foobar/wip/SoapySDR/build/lib/libSoapySDR.so.0.8.0 /usr/lib/x86_64-linux-gnu/libSoapySDR.so /usr/lib/x86_64-linux-gnu/libSoapySDR.so.0.7 /usr/lib/x86_64-linux-gnu/libSoapySDR.so.0.7.2 /usr/local/lib/libSoapySDR.so /usr/local/lib/libSoapySDR.so.0.8 /usr/local/lib/libSoapySDR.so.0.8.0
~/wip/SoapySDR/build$ SoapySDRUtil --info ######################################################
######################################################
Lib Version: v0.8.0-g351896d3 API Version: v0.8.0 ABI Version: v0.8 Install root: /usr/local Search path: /usr/local/lib/SoapySDR/modules0.8 Module found: /usr/local/lib/SoapySDR/modules0.8/libPlutoSDRSupport.so (0.1.1-2f346c7) Module found: /usr/local/lib/SoapySDR/modules0.8/librtlsdrSupport.so (0.3.2-8277756) Available factories... plutosdr, rtlsdr Available converters...
which version should I keep?
libsoapysdr-dev provided Types.h, and SoapySDRRange is defined in that file. But the definations of SoapySDRRange between SoapySDR.git and libsoapysdr-dev are different. I guess the libsoapysdr-dev is outdated.
Temporary solution I used is mv /usr/include/SoapySDR /usr/include/SoapySDR.bk and re-run cmake, and then it should not apprear that conflict error.
@arywz thanks for the great advice! I'll investigate.
I am closing this issue. It's a build and/or version mismatch thing
I uninstalled the latest soapy that I built from source and things got a littler farther.T there was a linking problem with libsoapysdr.so. It seems that the the link for the real .so using apt-get Ubuntu 20.04 package is placed in /user/lib/x86_64-linux-gnu and make could not find the .so at link time. I added a new symbolic link using this:
cd /user/local/lib
sudo ln /usr/lib/x86_64-linux-gnu/libSoapySDR.so.0.7.2 libSoapySDR.so
and it built like without any further issues. I'm sure three is a better way to solve this than a symbolic link
trying to build for on a fresh ubuntu 20.04 install. Install preqs and srsgui. cloned, cd srslte, mkdir build, cd build then: