Closed jketterl closed 2 years ago
I cloned the repository and compiled it on Bullseye (32 bit), but I don't see any error. It compiles ok. But I compiled it directly. The steps I executed: 1) cd SoapyRadioBerrySDR 2) mkdir build 3) cd build 4) cmake .. 5) make 6) sudo make install
Please, add the exact steps used to compile SoapyRadioberrySDR
The steps are:
git clone https://github.com/pa3gsb/Radioberry-2.x.git
cd Radioberry-2.x/SBC/rpi-4/SoapyRadioberrySDR/
mkdir build
cd build
cmake ..
make
The error occurs during the last step.
This happens inside a Debian Bullseye container on my 64bit x86 host. I also downloaded a fresh Rasperry Pi OS Bullseye (2022-01-28 32bit) image and tried it on a Pi 3B+ with the same result.
While building the RPi images, the build runs in an arm32 environment emulated by qemu, but I don't think the emulation is responsible for this kind of error.
Hi,
I have created a new image for a pi3 using Raspberry imager v1.7.1 the steps I have followed:
sudo apt update sudo apt upgrade sudo apt install build-essential git cmake swig -y sudo apt-get -y install git git clone https://github.com/pothosware/SoapySDR.git cd SoapySDR mkdir build cd build cmake .. make -j4 sudo make install sudo ldconfig cd ~ git clone https://github.com/pa3gsb/Radioberry-2.x.git cd Radioberry-2.x/SBC/rpi-4/SoapyRadioberrySDR/ mkdir build cd build cmake .. make pi.txt
All compiled well without errors
Indeed, that works. But for the sake of being able to update the system without too much of a hassle, I'm using the package manager to deliver software over compiling from source whenever possible. I am therefor relying on the SoapySDR version that's available in the Debian repositories. So please try repeating with libsoapysdr-dev
and without compiling SoapySDR from source.
I have updated CMakeList.txt to set the compiler to C14. The Debian repository of bullseye contains an older SoapySDR version which uses C11. You can test it by cloning my fork of Radioberry. If all is ok I will ask Johan with a pull request to update it. The fork is located at https://github.com/paulh002/Radioberry-2.x
Interestingly, that works. To my surprise, it seems like the only change is basically the same that I had already tried initially: setting the CMAKE_CXX_STANDARD
to 14
. Wouldn't be surprised if it actually needs to be in the correct order... I have already learned that SoapySDR modifies cmake settings pretty generously without paying a lot of respect to what other developers have in mind...
Good, please check if SoapyRadioberry works good for openwebrx. I could not test it with other software. But I tried to align it as much as possible with other SoapySDR implementations like plutosdr and sdrplay. This version also support transmitting. I am now also trying to support multi rx. 73 Paul
solved.
This initially occurred while building new Raspberry Pi images for OpenWebRX, but I have been able to reproduce the same problem in a Debian Bullseye docker container with only necessary packages installed.
The recent changes seem to cause problems with the C++ compiler on Debian, in particular
std::make_unique()
seems to be unavailable (error: 'make_unique' is not a member of 'std'
; full verbose log below). Seeing that this is only available in C++ 14, I tried modifying the cmake files to enforce C++ 14, but could not resolve it withset(CMAKE_CXX_STANDARD 14)
(same errror), and it seems like cmake still stubbornly passes-std=gnu++11
to the compiler.Other similar issues suggest using the
target_compile_features()
directive, but since the actual targets are handled by SoapySDR macros, I don't see how to add this.