pothosware / SoapySDRPlay3

Soapy SDR plugin for SDRPlay APIv3
https://github.com/pothosware/SoapySDRPlay3/wiki
MIT License
90 stars 15 forks source link

Make fails with following error #82

Open adamopoulosa1980 opened 4 months ago

adamopoulosa1980 commented 4 months ago
Installation Finished fatal: destination path 'SoapySDRPlay3' already exists and is not an empty directory. mkdir: cannot create directory 'build': File exists -- Build type not specified: defaulting to release. -- LIBSDRPLAY_INCLUDE_DIRS - /usr/local/include -- LIBSDRPLAY_LIBRARIES - /usr/local/lib/libsdrplay_api.so -- Module sdrPlaySupport configured with version: 0.5.1-2c8169d -- Configuring done -- Generating done -- Build files have been written to: /root/Downloads/SoapySDRPlay3/build Scanning dependencies of target sdrPlaySupport [ 16%] Building CXX object CMakeFiles/sdrPlaySupport.dir/Registration.cpp.o /root/Downloads/SoapySDRPlay3/Registration.cpp: In function 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > > findSDRPlay(const Kwargs&)': /root/Downloads/SoapySDRPlay3/Registration.cpp:52:26: error: 'struct sdrplay_api_DeviceT' has no member named 'valid' 52 if (not rspDevs[i].valid) continue; ^~~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:66:36: error: 'SDRPLAY_RSP1B_ID' was not declared in this scope; did you mean 'SDRPLAY_RSP1_ID'? 66 else if (rspDevs[i].hwVer == SDRPLAY_RSP1B_ID) ^~~~ SDRPLAY_RSP1_ID /root/Downloads/SoapySDRPlay3/Registration.cpp:84:44: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 84 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~ ~~~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:84:58: note: format string is defined here 84 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:99:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 99 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Single Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~~~ ~~~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:99:61: note: format string is defined here 99 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Single Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:111:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 111 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Dual Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~~~ ~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:111:61: note: format string is defined here 111 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Dual Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:123:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 123 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~ ~~~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:123:61: note: format string is defined here 123 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:135:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 135 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master (RSPduo sample rate=8Mhz)", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~~~~~~~ ~~~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:135:61: note: format string is defined here 135 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master (RSPduo sample rate=8Mhz)", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:147:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 147 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Slave", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~~ ~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:147:61: note: format string is defined here 147 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Slave", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
make[2]: [CMakeFiles/sdrPlaySupport.dir/build.make:82: CMakeFiles/sdrPlaySupport.dir/Registration.cpp.o] Error 1 make[1]: [CMakeFiles/Makefile2:123: CMakeFiles/sdrPlaySupport.dir/all] Error 2 make: *** [Makefile:149: all] Error 2 [ 16%] Building CXX object CMakeFiles/sdrPlaySupport.dir/Registration.cpp.o /root/Downloads/SoapySDRPlay3/Registration.cpp: In function 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > > findSDRPlay(const Kwargs&)': /root/Downloads/SoapySDRPlay3/Registration.cpp:52:26: error: 'struct sdrplay_api_DeviceT' has no member named 'valid' 52 if (not rspDevs[i].valid) continue; ^~~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:66:36: error: 'SDRPLAY_RSP1B_ID' was not declared in this scope; did you mean 'SDRPLAY_RSP1_ID'? 66 else if (rspDevs[i].hwVer == SDRPLAY_RSP1B_ID) ^~~~ SDRPLAY_RSP1_ID /root/Downloads/SoapySDRPlay3/Registration.cpp:84:44: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 84 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~ ~~~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:84:58: note: format string is defined here 84 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:99:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 99 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Single Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~~~ ~~~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:99:61: note: format string is defined here 99 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Single Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:111:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 111 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Dual Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~~~ ~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:111:61: note: format string is defined here 111 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Dual Tuner", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:123:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 123 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~ ~~~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:123:61: note: format string is defined here 123 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:135:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 135 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master (RSPduo sample rate=8Mhz)", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~~~~~~~ ~~~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:135:61: note: format string is defined here 135 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Master (RSPduo sample rate=8Mhz)", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d
/root/Downloads/SoapySDRPlay3/Registration.cpp:147:47: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type' {aka 'unsigned int'} [-Wformat=] 147 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Slave", results.size(), modelName.c_str(), rspDevs[i].SerNo); ^~~~~~~~ ~~~~
std::vector<std::map<std::__cxx11::basic_string, std::__cxx11::basic_string > >::size_type {aka unsigned int}
/root/Downloads/SoapySDRPlay3/Registration.cpp:31:76: note: in definition of macro 'sprintf_s' 31 #define sprintf_s(buffer, buffer_size, stringbuffer, ...) (sprintf(buffer, stringbuffer, __VA_ARGS__)) ^~~~ /root/Downloads/SoapySDRPlay3/Registration.cpp:147:61: note: format string is defined here 147 sprintf_s(lblstr, sizeof(lblstr), "SDRplay Dev%ld %s %s - Slave", results.size(), modelName.c_str(), rspDevs[i].SerNo); ~~^
long int
%d

make[2]: [CMakeFiles/sdrPlaySupport.dir/build.make:82: CMakeFiles/sdrPlaySupport.dir/Registration.cpp.o] Error 1 make[1]: [CMakeFiles/Makefile2:123: CMakeFiles/sdrPlaySupport.dir/all] Error 2 make: *** [Makefile:149: all] Error 2

jketterl commented 4 months ago

Yeah I encountered the same error when building new images for Raspberry Pi.

For context, the Pi images are still based on 32bit ARM, which did not receive the 3.12 or 3.14 API update from SDRPlay, so upgrading the SDRPlay API is not an option.

Not sure if this can be handled in SoapySDRPlay without adding too much overhead, but ultimately, this probably means that 32bit ARM users are stuck with old, outdated software.

fventuri commented 4 months ago

SDRplay API version 3.14 is now required by the code in master, however the other day I also created a branch called api-3.07 where you can find the old code that builds with SDRplay API 3.07.

These are the step-by-step instructions for building and installing SoapySDRPlay with the old API (based on these: https://github.com/pothosware/SoapySDRPlay3/wiki#building-soapy-sdr-play):

git clone https://github.com/pothosware/SoapySDRPlay.git
cd SoapySDRPlay
git checkout api-3.07
rm -fr build
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

Hope this helps, Franco