pothosware/SoapySDRPlay3

Mac M1 Issue

Opened this issue · 2 comments

[ 16%] Linking CXX shared module libsdrPlaySupport.so
Undefined symbols for architecture arm64:
"SoapySDR::Device::getSettingInfo(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const", referenced from:
vtable for SoapySDRPlay in Settings.cpp.o
"SoapySDR::Device::getSettingInfo(int, unsigned long, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const", referenced from:
vtable for SoapySDRPlay in Settings.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libsdrPlaySupport.so] Error 1
make[1]: *** [CMakeFiles/sdrPlaySupport.dir/all] Error 2
make: *** [all] Error 2

@madjuju - it looks like libSoapySDR on your Mac is missing that getSettingInfo function for some reason.

To confirm this is really the case, do you mind running the following command from a terminal:

find /usr -name libSoapySDR\*

this output should hopefully be the full path of the SoapySDR dynamic library on your system; probably something like this: /usr/local/lib/libSoapySDR.<version>.dylib

Once you have that filename, the next step is to run the command:

nm -C <filename from the previous step> | grep 'SoapySDR::Device::getSettingInfo'

and see if it returns anything.

I don't have a Mac here, since I run Linux on my computer; you may have to tweak the commands above a little bit in case you get some error message or warning.

Franco

I have the same issue, but on M2.
I have tried SDRplay_RSP_API-ARM64-3.07.1.run, SDRplay_RSP_API-MacOS-3.07.a4.run, SDRplay_RSP_API-MacOSX-3.07.3.pkg – the proper arm64 module, that should be placed in lib/SoapySDR/modules0.8/libsdrPlaySupport.so is absent :(

I compiled everything that allowed to compile, gathered all libraries of 'Mach-O 64-bit dynamically linked shared library arm64' format, but I lack this one file and cannot build it.

Fixed! Update: only when I removed everything SDR related installed via brew (brew remove gnuradio soapysdr soapyrtlsdr), was I able to build SoapySDRPlay and get /usr/local/lib/SoapySDR/modules0.8-3/libsdrPlaySupport.so!

# SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.8.1-gbb33b2d2
API Version: v0.8.200
ABI Version: v0.8-3
Install root: /usr/local
Search path:  /usr/local/lib/SoapySDR/modules0.8-3
Module found: /usr/local/lib/SoapySDR/modules0.8-3/libsdrPlaySupport.so (0.4.1-c4bb9af)
Available factories... sdrplay