Opendigitalradio / qt-drmplus

(unmaintained) Digital Radio Mondiale mode E (DRM+) receiver application using librtlsdr as front end.
Other
19 stars 13 forks source link

Build fail #5

Open wkazubski opened 5 years ago

wkazubski commented 5 years ago

Building of qt-drmplus failed with this messge: /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -g -O2 -MT libdrmplus_la-drmplus.lo -MD -MP -MF .deps/libdrmplus_la-drmplus.Tpo -c -o libdrmplus_la-drmplus.lo test -f 'drmplus.c' || echo './'drmplus.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I../include -g -O2 -MT libdrmplus_la-drmplus.lo -MD -MP -MF .deps/libdrmplus_la-drmplus.Tpo -c drmplus.c -fPIC -DPIC -o .libs/libdrmplus_la-drmplus.o drmplus.c: In function 'drmplusAddSamplesDouble': drmplus.c:332:2: warning: implicit declaration of function 'drm_move_to_base_band' [-Wimplicit-function-declaration] drm_move_to_base_band(p, &p->frame_in[480]); ^~~~~ drmplus.c:335:28: warning: implicit declaration of function 'drm_fine_time_sync'; did you mean 'drm_coarse_time_sync'? [-Wimplicit-function-declaration] p->siginfo.fine_timeshift=drm_fine_time_sync(&p->frame_in, p->siginfo.sync_state > SYNC_STATE_FTO_TRY ? old_ts : -1); ^~~~~~ drm_coarse_time_sync drmplus.c:439:10: warning: implicit declaration of function 'drm_coarse_freq_sync_4symbols'; did you mean 'drm_coarse_freq_sync_maxenergy'? [-Wimplicit-function-declaration] ret = drm_coarse_freq_sync_4symbols(p, spectrum); ^~~~~~~~~ drm_coarse_freq_sync_maxenergy ... /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -g -O2 -MT libdrmplus_la-sig_proc.lo -MD -MP -MF .deps/libdrmplus_la-sig_proc.Tpo -c -o libdrmplus_la-sig_proc.lo test -f 'sig_proc.c' || echo './'sig_proc.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I../include -g -O2 -MT libdrmplus_la-sig_proc.lo -MD -MP -MF .deps/libdrmplus_la-sig_proc.Tpo -c sig_proc.c -fPIC -DPIC -o .libs/libdrmplus_la-sig_proc.o sig_proc.c: In function 'drm_equalize_feed_pilots_lin_int': sig_proc.c:213:52: error: 'pil_step' undeclared (first use in this function); did you mean 'pil_diff'? H_pilots[i-j][0] = (q31_t)H_pilots[i][0] - j*pil_step[0]; ^~~~ pil_diff sig_proc.c:213:52: note: each undeclared identifier is reported only once for each function it appears in sig_proc.c:223:16: error: 'Ncarr' undeclared (first use in this function) cmp_num = Ncarr - i; ^~~~~ make[2]: *** [Makefile:499: libdrmplus_la-sig_proc.lo] Error 1 The undeclared variables come from a patch "Enchance equalizer of higher carriers after last known pilot..." from Jan 17, 2018

andimik commented 5 years ago

Me too. No build possible.

See console output drmplus_fail.txt

Or qt-creator drmplus_fail_qtcreator.txt

piratfm commented 5 years ago

Hi all, Please try latest commit. Variable and constant names been fixed.

andimik commented 5 years ago

Now it compiles. But I get

./qt-drmplus: symbol lookup error: ./qt-drmplus: undefined symbol: NeAACDecInitDRM

when starting the file.

wkazubski commented 5 years ago

The error "undefined symbol: NeAACDecInitDRM" is most likely due to faac compiled without DRM support. DRM needs some special settings that are not enabled by default. Please build faac with an option --enable-drm added. I use: autoreconf -fi ./configure --enable-shared --disable-static --enable-drm make

For me, qt-drmplus builds fine on openSUSE Leap.15 and Tumbleweed. OK to close the issue. Thanks.

andimik commented 5 years ago

You are talking about faad

I've compiled faad2 with DRM.

Do I need to have it enabled for both?

wkazubski commented 5 years ago

Yes, It should be for faad, not faac, For openSUSE, in the Packman Essentials repository there is a package of faad (version 2.8.8) that already contains DRM support. The binary so file is built with the standard faad but packaged separately. See if your build gives a library named libfaad_drm.so.* or similar.