SoapySDRPlay3 icon indicating copy to clipboard operation
SoapySDRPlay3 copied to clipboard

Make fails with following error

Open adamopoulosa1980 opened this issue 1 year ago • 2 comments

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

adamopoulosa1980 avatar Feb 18 '24 12:02 adamopoulosa1980

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.

jketterl avatar Feb 18 '24 12:02 jketterl

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

fventuri avatar Feb 18 '24 15:02 fventuri