f4exb / sdrangel

SDR Rx/Tx software for Airspy, Airspy HF+, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay and FunCube
GNU General Public License v3.0
2.92k stars 441 forks source link

Compiler error on v7.2.1 with latest codec2 #1256

Closed loewal closed 2 years ago

loewal commented 2 years ago

Hi, This happened on the latest version; v7.1 went well. [ 40%] Linking CXX shared library ../../../lib/pluginssrv/libremotesinksrv.dylib /Users/Loewal/Downloads/sdrangel/plugins/channelrx/demodfreedv/freedvdemodsink.cpp:436:13: error: no member named 'interleave_frames' in 'freedv_advanced' adv.interleave_frames = 1;


[ 40%] Built target remotesinksrv
[ 40%] Building CXX object pluginssrv/channelrx/demodfreedv/CMakeFiles/demodfreedvsrv.dir/freedvdemodsettings.cpp.o
1 error generated.
make[2]: *** [pluginssrv/channelrx/demodfreedv/CMakeFiles/demodfreedvsrv.dir/freedvdemodsink.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 40%] Building CXX object pluginssrv/channelrx/noisefigure/CMakeFiles/noisefiguresrv.dir/noisefiguresrv_autogen/mocs_compilation.cpp.o
make[1]: *** [pluginssrv/channelrx/demodfreedv/CMakeFiles/demodfreedvsrv.dir/all] Error 2
loewal commented 2 years ago

B.t.w. will there be a .dmg again?

f4exb commented 2 years ago

Nothing was changed in FreeDV plugins not codec2 required version since 7.1 so the problem is entirely on your side.

srcejon commented 2 years ago

B.t.w. will there be a .dmg again?

It's available now - and should only use SSE this time. (It takes a bit longer to build than the other platforms)

srcejon commented 2 years ago

As to the compiler error, it's most likely because you are using a more recent version of of the codec2 library than SDRangel supports. sdrangel/external/CMakeLists.txt assumes v0.9.2 - the latest tag looks to be v1.03 - and the field referred to no longer exists.

codec2 github not obviously clear on what the changes are - but could be worth trying to pull in the latest version - as v0.9.2 is a couple of years old.

loewal commented 2 years ago

Can confirm that it runs fine on a 13 year old iMac 24" with Catalina-patcher installed.

Thanks Jon

loewal commented 2 years ago

Nothing was changed in FreeDV plugins not codec2 required version since 7.1 so the problem is entirely on your side.

Happily enough there is a DMG which runs fine. The iMac that compiles fine has its dependencies installed with Homebrew. The other one has Macports. Which refuses.....

ra1nb0w commented 2 years ago

freedv_advanced.interleave_frames was removed 5 months ago from codec2 (see) and macports tracks the latest commit to support "freedv activity days" and experimenter (this is not an habit in macports). I fixed the issue; update macports with sudo port selfupdate and then you can compile sdrangel (also available from macports and from tomorrow as binary).

Please, confirm the fix.

loewal commented 2 years ago

So #ra1nb0w, Are these my steps:

I just tried to compile codec2 according the manual installation of SDRangel, but got a linker-error: unknown option: -Map=ofdm_stack.dir/all Error 2

I am not sure what to do and when....sorry.

loewal commented 2 years ago

sorry Map=ofdm_stack.map

ra1nb0w commented 2 years ago

if you want to build sdrangel from source and install only default dependencies:

sudo port selfupdate
sudo port install rdepof:sdrangel

otherwise

sudo port install sdrangel

if you want change variant use

port info sdrangel
port variants sdrangel
# as example build with native cflags (cpu options)
sudo port install sdrangel +native
loewal commented 2 years ago

But this way I compile the 'old' v6.20.3? I would like the v7.2.1 the manual way as in Linux. This worked with v7.0

ra1nb0w commented 2 years ago

macports has already 7.2.1

loewal commented 2 years ago

Thank you!

loewal commented 2 years ago

freedv_advanced.interleave_frames was removed 5 months ago from codec2 (see) and macports tracks the latest commit to support "freedv activity days" and experimenter (this is not an habit in macports). I fixed the issue; update macports with sudo port selfupdate and then you can compile sdrangel (also available from macports and from tomorrow as binary).

Please, confirm the fix.

Confirmed!! Thank you.