andreas@afb:~/apps/etisnoop$ ./bootstrap.sh configure.ac:9: warning: The macro `AC_CONFIG_HEADER' is obsolete. configure.ac:9: You should run autoupdate. ./lib/autoconf/status.m4:719: AC_CONFIG_HEADER is expanded from... configure.ac:9: the top level configure.ac:19: warning: The macro `AC_PROG_CC_STDC' is obsolete. configure.ac:19: You should run autoupdate. ./lib/autoconf/c.m4:1666: AC_PROG_CC_STDC is expanded from... configure.ac:19: the top level configure.ac:24: warning: $as_echo is obsolete; use AS_ECHO(["message"]) instead lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... m4/ax_pthread.m4:89: AX_PTHREAD is expanded from... configure.ac:24: the top level configure.ac:12: installing './compile' configure.ac:24: installing './config.guess' configure.ac:24: installing './config.sub' configure.ac:7: installing './install-sh' configure.ac:7: installing './missing' Makefile.am: installing './depcomp' You can call ./configure now andreas@afb:~/apps/etisnoop$ make make: *** Es wurden keine Ziele angegeben und keine „make“-Steuerdatei gefunden. Schluss. andreas@afb:~/apps/etisnoop$ ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a race-free mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether UID '1000' is supported by ustar format... yes checking whether GID '1000' is supported by ustar format... yes checking how to create a ustar tar archive... gnutar checking whether make supports nested variables... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether gcc accepts -g... yes checking for gcc option to enable C11 features... none needed checking whether gcc understands -c and -o together... yes checking whether make supports the include directive... yes (GNU style) checking dependency style of gcc... gcc3 checking for g++... g++ checking whether the compiler supports GNU C++... yes checking whether g++ accepts -g... yes checking for g++ option to enable C++11 features... none needed checking dependency style of g++... gcc3 checking whether g++ supports C++11 features with -std=c++11... yes checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for a sed that does not truncate output... /usr/bin/sed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking whether gcc is Clang... no checking whether pthreads work with "-pthread" and "-lpthread"... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking whether more special flags are required for pthreads... no checking for PTHREAD_PRIO_INHERIT... yes checking for sin in -lm... yes checking for library containing NeAACDecDecode... -lfaad checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands *********************************************** Configured etisnoop Please run make andreas@afb:~/apps/etisnoop$ make make all-am make[1]: Verzeichnis „/home/andreas/apps/etisnoop“ wird betreten CXX src/dabplussnoop.o CXX src/etiinput.o CXX src/etianalyse.o CXX src/etisnoop.o CXX src/charset.o CXX src/faad_decoder.o CXX src/ensembledatabase.o In file included from src/ensembledatabase.cpp:34: src/ensembledatabase.hpp:53:17: error: ‘uint8_t’ was not declared in this scope 53 | std::vector label_bytes; | ^~~~~~~ src/ensembledatabase.hpp:41:1: note: ‘uint8_t’ is defined in header ‘’; did you forget to ‘#include ’? 40 | #include +++ |+#include 41 | src/ensembledatabase.hpp:53:24: error: template argument 1 is invalid 53 | std::vector label_bytes; | ^ src/ensembledatabase.hpp:53:24: error: template argument 2 is invalid src/ensembledatabase.hpp:54:5: error: ‘uint16_t’ does not name a type 54 | uint16_t shortlabel_flag; | ^~~~~~~~ src/ensembledatabase.hpp:54:5: note: ‘uint16_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:62:31: error: ‘uint8_t’ was not declared in this scope 62 | std::map > segments; | ^~~~~~~ src/ensembledatabase.hpp:62:31: note: ‘uint8_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:62:38: error: template argument 1 is invalid 62 | std::map > segments; | ^ src/ensembledatabase.hpp:62:38: error: template argument 2 is invalid src/ensembledatabase.hpp:62:40: error: template argument 2 is invalid 62 | std::map > segments; | ^ src/ensembledatabase.hpp:62:40: error: template argument 4 is invalid src/ensembledatabase.hpp:65:5: error: ‘uint8_t’ does not name a type 65 | uint8_t toggle_flag = 0; | ^~~~~~~ src/ensembledatabase.hpp:65:5: note: ‘uint8_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:76:5: error: ‘uint8_t’ does not name a type 76 | uint8_t id; | ^~~~~~~ src/ensembledatabase.hpp:76:5: note: ‘uint8_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:77:5: error: ‘uint8_t’ does not name a type 77 | uint8_t start_addr; | ^~~~~~~ src/ensembledatabase.hpp:77:5: note: ‘uint8_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:97:5: error: ‘uint32_t’ does not name a type 97 | uint32_t service_id = 0; | ^~~~~~~~ src/ensembledatabase.hpp:97:5: note: ‘uint32_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:98:5: error: ‘uint8_t’ does not name a type 98 | uint8_t subchId; | ^~~~~~~ src/ensembledatabase.hpp:98:5: note: ‘uint8_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:100:5: error: ‘uint8_t’ does not name a type 100 | uint8_t scids = 255; // 255 is invalid, as scids is only 4 bits wide | ^~~~~~~ src/ensembledatabase.hpp:100:5: note: ‘uint8_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:114:5: error: ‘uint32_t’ does not name a type 114 | uint32_t id; | ^~~~~~~~ src/ensembledatabase.hpp:114:5: note: ‘uint32_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:121:46: error: ‘uint32_t’ has not been declared 121 | component_t& get_component_by_subchannel(uint32_t subchannel_id); | ^~~~~~~~ src/ensembledatabase.hpp:122:41: error: ‘uint8_t’ has not been declared 122 | component_t& get_component_by_scids(uint8_t scids); | ^~~~~~~ src/ensembledatabase.hpp:123:42: error: ‘uint32_t’ has not been declared 123 | component_t& get_or_create_component(uint32_t subchannel_id); | ^~~~~~~~ src/ensembledatabase.hpp:136:5: error: ‘uint16_t’ does not name a type 136 | uint16_t EId; | ^~~~~~~~ src/ensembledatabase.hpp:136:5: note: ‘uint16_t’ is defined in header ‘’; did you forget to ‘#include ’? src/ensembledatabase.hpp:144:28: error: ‘uint32_t’ has not been declared 144 | service_t& get_service(uint32_t service_id); | ^~~~~~~~ src/ensembledatabase.hpp:145:38: error: ‘uint32_t’ has not been declared 145 | service_t& get_or_create_service(uint32_t service_id); | ^~~~~~~~ src/ensembledatabase.hpp:147:34: error: ‘uint8_t’ has not been declared 147 | subchannel_t& get_subchannel(uint8_t subchannel_id); | ^~~~~~~ src/ensembledatabase.hpp:148:44: error: ‘uint8_t’ has not been declared 148 | subchannel_t& get_or_create_subchannel(uint8_t subchannel_id); | ^~~~~~~ src/ensembledatabase.cpp: In member function ‘std::string ensemble_database::label_t::label() const’: src/ensembledatabase.cpp:60:59: error: request for member ‘begin’ in ‘((const ensemble_database::label_t*)this)->ensemble_database::label_t::label_bytes’, which is of non-class type ‘const int’ 60 | return convert_ebu_to_utf8(string(label_bytes.begin(), label_bytes.end())); | ^~~~~ src/ensembledatabase.cpp:60:80: error: request for member ‘end’ in ‘((const ensemble_database::label_t*)this)->ensemble_database::label_t::label_bytes’, which is of non-class type ‘const int’ 60 | return convert_ebu_to_utf8(string(label_bytes.begin(), label_bytes.end())); | ^~~ src/ensembledatabase.cpp:62:39: error: request for member ‘begin’ in ‘((const ensemble_database::label_t*)this)->ensemble_database::label_t::label_bytes’, which is of non-class type ‘const int’ 62 | return string(label_bytes.begin(), label_bytes.end()); | ^~~~~ src/ensembledatabase.cpp:62:60: error: request for member ‘end’ in ‘((const ensemble_database::label_t*)this)->ensemble_database::label_t::label_bytes’, which is of non-class type ‘const int’ 62 | return string(label_bytes.begin(), label_bytes.end()); | ^~~ src/ensembledatabase.cpp:65:47: error: request for member ‘data’ in ‘((const ensemble_database::label_t*)this)->ensemble_database::label_t::label_bytes’, which is of non-class type ‘const int’ 65 | return ucs2toutf8(label_bytes.data(), label_bytes.size()); | ^~~~ src/ensembledatabase.cpp:65:67: error: request for member ‘size’ in ‘((const ensemble_database::label_t*)this)->ensemble_database::label_t::label_bytes’, which is of non-class type ‘const int’ 65 | return ucs2toutf8(label_bytes.data(), label_bytes.size()); | ^~~~ src/ensembledatabase.cpp: In member function ‘std::string ensemble_database::label_t::shortlabel() const’: src/ensembledatabase.cpp:79:40: error: request for member ‘size’ in ‘((const ensemble_database::label_t*)this)->ensemble_database::label_t::label_bytes’, which is of non-class type ‘const int’ 79 | for (size_t i = 0; i < label_bytes.size(); ++i) { | ^~~~ src/ensembledatabase.cpp:80:13: error: ‘shortlabel_flag’ was not declared in this scope; did you mean ‘shortlabel’? 80 | if (shortlabel_flag & 0x8000 >> i) { | ^~~~~~~~~~~~~~~ | shortlabel src/ensembledatabase.cpp:81:56: error: invalid types ‘const int[size_t {aka long unsigned int}]’ for array subscript 81 | shortlabel += static_cast(label_bytes[i]); | ^ src/ensembledatabase.cpp: In member function ‘std::string ensemble_database::label_t::assemble() const’: src/ensembledatabase.cpp:92:22: error: request for member ‘count’ in ‘((const ensemble_database::label_t*)this)->ensemble_database::label_t::segments’, which is of non-class type ‘const int’ 92 | if (segments.count(i) == 0) { | ^~~~~ src/ensembledatabase.cpp:96:38: error: request for member ‘at’ in ‘((const ensemble_database::label_t*)this)->ensemble_database::label_t::segments’, which is of non-class type ‘const int’ 96 | const auto& s = segments.at(i); | ^~ src/ensembledatabase.cpp: In member function ‘std::string ensemble_database::label_t::assembly_state() const’: src/ensembledatabase.cpp:124:26: error: ‘begin’ was not declared in this scope; did you mean ‘std::begin’? 124 | for (const auto& s : segments) { | ^~~~~~~~ | std::begin In file included from /usr/include/c++/13/string:53, from /usr/include/c++/13/bits/locale_classes.h:40, from /usr/include/c++/13/locale:41, from src/ensembledatabase.cpp:30: /usr/include/c++/13/bits/range_access.h:95:5: note: ‘std::begin’ declared here 95 | begin(_Tp (&__arr)[_Nm]) noexcept | ^~~~~ src/ensembledatabase.cpp:124:26: error: ‘end’ was not declared in this scope; did you mean ‘std::end’? 124 | for (const auto& s : segments) { | ^~~~~~~~ | std::end /usr/include/c++/13/bits/range_access.h:106:5: note: ‘std::end’ declared here 106 | end(_Tp (&__arr)[_Nm]) noexcept | ^~~ src/ensembledatabase.cpp: At global scope: src/ensembledatabase.cpp:156:14: error: no declaration matches ‘ensemble_database::component_t& ensemble_database::service_t::get_component_by_subchannel(uint32_t)’ 156 | component_t& service_t::get_component_by_subchannel(uint32_t subchannel_id) | ^~~~~~~~~ src/ensembledatabase.hpp:121:18: note: candidate is: ‘ensemble_database::component_t& ensemble_database::service_t::get_component_by_subchannel(int)’ 121 | component_t& get_component_by_subchannel(uint32_t subchannel_id); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ src/ensembledatabase.hpp:113:8: note: ‘struct ensemble_database::service_t’ defined here 113 | struct service_t { | ^~~~~~~~~ src/ensembledatabase.cpp:168:14: error: no declaration matches ‘ensemble_database::component_t& ensemble_database::service_t::get_component_by_scids(uint8_t)’ 168 | component_t& service_t::get_component_by_scids(uint8_t scids) | ^~~~~~~~~ src/ensembledatabase.hpp:122:18: note: candidate is: ‘ensemble_database::component_t& ensemble_database::service_t::get_component_by_scids(int)’ 122 | component_t& get_component_by_scids(uint8_t scids); | ^~~~~~~~~~~~~~~~~~~~~~ src/ensembledatabase.hpp:113:8: note: ‘struct ensemble_database::service_t’ defined here 113 | struct service_t { | ^~~~~~~~~ src/ensembledatabase.cpp:180:14: error: no declaration matches ‘ensemble_database::component_t& ensemble_database::service_t::get_or_create_component(uint32_t)’ 180 | component_t& service_t::get_or_create_component(uint32_t subchannel_id) | ^~~~~~~~~ src/ensembledatabase.hpp:123:18: note: candidate is: ‘ensemble_database::component_t& ensemble_database::service_t::get_or_create_component(int)’ 123 | component_t& get_or_create_component(uint32_t subchannel_id); | ^~~~~~~~~~~~~~~~~~~~~~~ src/ensembledatabase.hpp:113:8: note: ‘struct ensemble_database::service_t’ defined here 113 | struct service_t { | ^~~~~~~~~ src/ensembledatabase.cpp:196:12: error: no declaration matches ‘ensemble_database::service_t& ensemble_database::ensemble_t::get_service(uint32_t)’ 196 | service_t& ensemble_t::get_service(uint32_t service_id) | ^~~~~~~~~~ src/ensembledatabase.hpp:144:16: note: candidate is: ‘ensemble_database::service_t& ensemble_database::ensemble_t::get_service(int)’ 144 | service_t& get_service(uint32_t service_id); | ^~~~~~~~~~~ src/ensembledatabase.hpp:135:8: note: ‘struct ensemble_database::ensemble_t’ defined here 135 | struct ensemble_t { | ^~~~~~~~~~ src/ensembledatabase.cpp:207:12: error: no declaration matches ‘ensemble_database::service_t& ensemble_database::ensemble_t::get_or_create_service(uint32_t)’ 207 | service_t& ensemble_t::get_or_create_service(uint32_t service_id) | ^~~~~~~~~~ src/ensembledatabase.hpp:145:16: note: candidate is: ‘ensemble_database::service_t& ensemble_database::ensemble_t::get_or_create_service(int)’ 145 | service_t& get_or_create_service(uint32_t service_id); | ^~~~~~~~~~~~~~~~~~~~~ src/ensembledatabase.hpp:135:8: note: ‘struct ensemble_database::ensemble_t’ defined here 135 | struct ensemble_t { | ^~~~~~~~~~ src/ensembledatabase.cpp:222:15: error: no declaration matches ‘ensemble_database::subchannel_t& ensemble_database::ensemble_t::get_subchannel(uint8_t)’ 222 | subchannel_t& ensemble_t::get_subchannel(uint8_t subchannel_id) | ^~~~~~~~~~ src/ensembledatabase.hpp:147:19: note: candidate is: ‘ensemble_database::subchannel_t& ensemble_database::ensemble_t::get_subchannel(int)’ 147 | subchannel_t& get_subchannel(uint8_t subchannel_id); | ^~~~~~~~~~~~~~ src/ensembledatabase.hpp:135:8: note: ‘struct ensemble_database::ensemble_t’ defined here 135 | struct ensemble_t { | ^~~~~~~~~~ src/ensembledatabase.cpp:233:15: error: no declaration matches ‘ensemble_database::subchannel_t& ensemble_database::ensemble_t::get_or_create_subchannel(uint8_t)’ 233 | subchannel_t& ensemble_t::get_or_create_subchannel(uint8_t subchannel_id) | ^~~~~~~~~~ src/ensembledatabase.hpp:148:19: note: candidate is: ‘ensemble_database::subchannel_t& ensemble_database::ensemble_t::get_or_create_subchannel(int)’ 148 | subchannel_t& get_or_create_subchannel(uint8_t subchannel_id); | ^~~~~~~~~~~~~~~~~~~~~~~~ src/ensembledatabase.hpp:135:8: note: ‘struct ensemble_database::ensemble_t’ defined here 135 | struct ensemble_t { | ^~~~~~~~~~ make[1]: *** [Makefile:695: src/ensembledatabase.o] Fehler 1 make[1]: Verzeichnis „/home/andreas/apps/etisnoop“ wird verlassen make: *** [Makefile:421: all] Fehler 2