Dump1900 multiple definition of `Modes'

Compiling the latest dump1900-fa from github fails.

There was a similar topic here where the suggestion was to use the dev branch, that fails as well.

Anyone managed to compile it?

 time make BLADERF=no
cc -g -o dump1090 dump1090.o anet.o interactive.o mode_ac.o mode_s.o comm_b.o net_io.o crc.o demod_2400.o stats.o cpr.o icao_filter.o track.o util.o convert.o sdr_ifile.o sdr.o sdr_rtlsdr.o  -lpthread -lm -lrt -lrtlsdr -lusb-1.0 -lncurses
/usr/bin/ld: interactive.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: mode_ac.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: mode_s.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: comm_b.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: net_io.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: crc.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: demod_2400.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: stats.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: icao_filter.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: track.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: util.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: convert.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: sdr_ifile.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: sdr.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
/usr/bin/ld: sdr_rtlsdr.o:/usr/src/prg/dump1090-fa/dump1090.h:390: multiple definition of `Modes'; dump1090.o:/usr/src/prg/dump1090-fa/dump1090.h:390: first defined here
collect2: error: ld returned 1 exit status
make: *** [Makefile:44: dump1090] Error 1

real	0m3.607s
user	0m0.986s
sys	0m0.304s

This was fixed >2 years ago – please check you actually have the latest version.

(The link line indicates you’re definitely on an old version, at least earlier than 2019)

Oh, right – you’re on an outdated fork that adsbx is apparently not keeping up to date. The up-to-date version is at GitHub - flightaware/dump1090: Dump1090 is a simple Mode S decoder for RTLSDR devices (and always has been)

1 Like

Thanks, it certainly compiles now! We will see if it’s going to be good.

This is the old build I was using:

-----------------------------------------------------------------------------
| dump1090 ModeS Receiver                           dump1090-fa 7.1~bpo10+1 |
| build options: ENABLE_RTLSDR ENABLE_BLADERF ENABLE_HACKRF ENABLE_LIMESDR  |
-----------------------------------------------------------------------------
  detected runtime CPU features: ARMv7+NEON+VFPv4 
  selected DSP implementations: 
    magnitude_uc8                            neon_vrsqrte_armv7a_neon_vfpv4
    magnitude_uc8_aligned                    neon_vrsqrte_armv7a_neon_vfpv4_aligned
    magnitude_power_uc8                      neon_vrsqrte_armv7a_neon_vfpv4
    magnitude_power_uc8_aligned              neon_vrsqrte_armv7a_neon_vfpv4_aligned
    magnitude_sc16                           neon_vrsqrte_armv7a_neon_vfpv4
    magnitude_sc16_aligned                   neon_vrsqrte_armv7a_neon_vfpv4_aligned
    magnitude_sc16q11                        neon_vrsqrte_armv7a_neon_vfpv4
    magnitude_sc16q11_aligned                neon_vrsqrte_armv7a_neon_vfpv4_aligned
    mean_power_u16                           u32_armv7a_neon_vfpv4
    mean_power_u16_aligned                   u32_armv7a_neon_vfpv4_aligned
    count_above_u16                          neon_armv7a_neon_vfpv4
    count_above_u16_aligned                  neon_armv7a_neon_vfpv4

This is the new one you just suggested:

./dump1090 --version
-----------------------------------------------------------------------------
| dump1090 ModeS Receiver                               dump1090-fa unknown |
| build options: ENABLE_RTLSDR                                              |
-----------------------------------------------------------------------------
  detected runtime CPU features: 
  selected DSP implementations: 
    magnitude_uc8                            lookup_unroll_4_generic
    magnitude_uc8_aligned                    lookup_unroll_4_generic
    magnitude_power_uc8                      lookup_unroll_4_generic
    magnitude_power_uc8_aligned              lookup_unroll_4_generic
    magnitude_sc16                           exact_float_generic
    magnitude_sc16_aligned                   exact_float_generic
    magnitude_sc16q11                        exact_float_generic
    magnitude_sc16q11_aligned                exact_float_generic
    mean_power_u16                           u64_generic
    mean_power_u16_aligned                   u64_generic
    count_above_u16                          generic_generic
    count_above_u16_aligned                  generic_generic

At least they could’ve include a version number so we know whats up :smiley:

Anyway I hope it will work as I see some old options are nuked:

./dump1090 --interactive --enable-agc --metric --aggressive --net --net-http-port 8080
warning: --aggressive not supported in this build, option ignored (consider '--fix-2bit' instead)
warning: --net-http-port not supported in this build, option ignored.
Sun Dec  4 10:37:51 2022 CET  dump1090-fa unknown starting up.

@obj
@zymucicp

**I have test-installed on various OS, the latest versions (7.2) of dump1090-fa by using source code from Flightaware Repository https://github.com/flightaware/dump1090.

The .deb packages were built using the bash script given below. This script detects the OS Version, and builds matching .deb package of dump1090-fa:

 

sudo bash -c "$(wget -O - https://raw.githubusercontent.com/abcd567a/piaware-ubuntu-debian-amd64/master/install-dump1090-fa.sh)"

 

For details please visit https://github.com/abcd567a/piaware-ubuntu-debian-amd64

 

Built on Ubuntu 18 (Bionic)

image

 

Built on Ubuntu 20 (Focal)

 

Built on Ubuntu 22 (Jammy)

 

Built on Linux Mint 19 (Tara)

image

 

Built on Linux Mint 20 (Ulyana)

image

 

Built on Linux Mint 21 (Vanessa)

image

The version number is passed in by the package build infrastructure, if you’re not using the package build infrastructure it doesn’t have a version to use.

These went away long ago, probably it’s just that the new version is better about telling you about that.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.