flightaware / dump978

FlightAware's 978MHz UAT demodulator
BSD 2-Clause "Simplified" License
40 stars 16 forks source link

Compilation issues under CGG 12.2.0 regarding incomplete types #18

Closed aviatest closed 1 year ago

aviatest commented 1 year ago

Environment notes: GCC Version: 12.2.0 Linux Kernel: 6.0.0-1-MANJARO GNU Make 4.3

When running make, I run into compiler errors regarding the lookup_phase_ , lookup_magsq_, and lookup_atan_ fields.

Output:

g++ -std=c++11 -Wall -Wno-psabi -Werror -O2 -g -Ilibs -DVERSION=\"6782809\"  -c -o dump978_main.o dump978_main.cc
g++ -std=c++11 -Wall -Wno-psabi -Werror -O2 -g -Ilibs -DVERSION=\"6782809\"  -c -o socket_output.o socket_output.cc
g++ -std=c++11 -Wall -Wno-psabi -Werror -O2 -g -Ilibs -DVERSION=\"6782809\"  -c -o message_dispatch.o message_dispatch.cc
g++ -std=c++11 -Wall -Wno-psabi -Werror -O2 -g -Ilibs -DVERSION=\"6782809\"  -c -o fec.o fec.cc
cc -Wall -Werror -O2 -g -Ilibs -DVERSION=\"6782809\"  -c -o libs/fec/init_rs_char.o libs/fec/init_rs_char.c
cc -Wall -Werror -O2 -g -Ilibs -DVERSION=\"6782809\"  -c -o libs/fec/decode_rs_char.o libs/fec/decode_rs_char.c
g++ -std=c++11 -Wall -Wno-psabi -Werror -O2 -g -Ilibs -DVERSION=\"6782809\"  -c -o sample_source.o sample_source.cc
g++ -std=c++11 -Wall -Wno-psabi -Werror -O2 -g -Ilibs -DVERSION=\"6782809\"  -c -o soapy_source.o soapy_source.cc
g++ -std=c++11 -Wall -Wno-psabi -Werror -O2 -g -Ilibs -DVERSION=\"6782809\"  -c -o convert.o convert.cc
In file included from convert.cc:5:
convert.h:82:42: error: field ‘lookup_phase_’ has incomplete type ‘std::array<short unsigned int, 65536>’
   82 |         std::array<std::uint16_t, 65536> lookup_phase_;
      |                                          ^~~~~~~~~~~~~
In file included from /usr/include/c++/12.2.0/bits/unique_ptr.h:36,
                 from /usr/include/c++/12.2.0/memory:76,
                 from convert.h:10:
/usr/include/c++/12.2.0/tuple:1595:45: note: declaration of ‘struct std::array<short unsigned int, 65536>’
 1595 |   template<typename _Tp, size_t _Nm> struct array;
      |                                             ^~~~~
convert.h:83:35: error: field ‘lookup_magsq_’ has incomplete type ‘std::array<double, 65536>’
   83 |         std::array<double, 65536> lookup_magsq_;
      |                                   ^~~~~~~~~~~~~
/usr/include/c++/12.2.0/tuple:1595:45: note: declaration of ‘struct std::array<double, 65536>’
 1595 |   template<typename _Tp, size_t _Nm> struct array;
      |                                             ^~~~~
convert.h:99:42: error: field ‘lookup_phase_’ has incomplete type ‘std::array<short unsigned int, 65536>’
   99 |         std::array<std::uint16_t, 65536> lookup_phase_;
      |                                          ^~~~~~~~~~~~~
/usr/include/c++/12.2.0/tuple:1595:45: note: declaration of ‘struct std::array<short unsigned int, 65536>’
 1595 |   template<typename _Tp, size_t _Nm> struct array;
      |                                             ^~~~~
convert.h:100:35: error: field ‘lookup_magsq_’ has incomplete type ‘std::array<double, 65536>’
  100 |         std::array<double, 65536> lookup_magsq_;
      |                                   ^~~~~~~~~~~~~
/usr/include/c++/12.2.0/tuple:1595:45: note: declaration of ‘struct std::array<double, 65536>’
 1595 |   template<typename _Tp, size_t _Nm> struct array;
      |                                             ^~~~~
convert.h:112:42: error: field ‘lookup_atan_’ has incomplete type ‘std::array<short unsigned int, 65536>’
  112 |         std::array<std::uint16_t, 65536> lookup_atan_;
      |                                          ^~~~~~~~~~~~
/usr/include/c++/12.2.0/tuple:1595:45: note: declaration of ‘struct std::array<short unsigned int, 65536>’
 1595 |   template<typename _Tp, size_t _Nm> struct array;
      |                                             ^~~~~
make: *** [<builtin>: convert.o] Error 1 
mutability commented 1 year ago

See #14 / #15. Try the dev branch.

aviatest commented 1 year ago

Thank you for the help. The dev branch works.