ok
public
Mar 23, 2025
Never
22
This is an error log generated during the compilation of a C++ project using the Waf build system. Let's break down the key points from the error messages:
1. The errors indicate conflicts related to the return type of functions. There are discrepancies in the return types specified for functions that are supposed to override or implement virtual functions from base classes or interfaces.
2. The compiler is complaining about features used in the code that are only available when compiling with support for C++11 standard. To resolve this, the `-std=c++11` or `-std=gnu++11` compiler options need to be set to enable C++11 features.
3. Some errors indicate issues with non-static data member initializers. This feature is also only available with C++11 standard. To fix this, the same compiler options as above should be used.
4. There are also issues related to the usage of `decltype`, `unordered_map`, and other constructs that are keywords or template types in C++11, indicating that the codebase is meant to be compiled with C++11 support.
5. The errors related to non-static data initialization and incompatible types hint at potential coding standards violations or outdated code that needs to be updated to adhere to modern C++ standards.
In summary, to resolve these compilation errors:
- Ensure that the code is compiled with C++11 support: Add `-std=c++11` or `-std=gnu++11` compiler flags.
- Resolve conflicts with return types in overridden functions.
- Update the codebase to use modern C++ features and adhere to C++11 coding standards.
1 [1247/2261] cxx: src/aqua-sim-ng/examples/named_data_example.cc -> build/src/aqua-sim-ng/examples/named_data_example.cc.6.o 2 [1248/2261] cxx: src/aqua-sim-ng/examples/bMAC.cc -> build/src/aqua-sim-ng/examples/bMAC.cc.5.o 3 [1249/2261] cxx: src/aqua-sim-ng/model/aqua-sim-routing-dummy.cc -> build/src/aqua-sim-ng/model/aqua-sim-routing-dummy.cc.1.o 4 In file included from ../src/aqua-sim-ng/model/aqua-sim-phy.h:29:0, 5 from ../src/aqua-sim-ng/model/aqua-sim-net-device.h:38, 6 from ../src/aqua-sim-ng/model/aqua-sim-routing.h:35, 7 from ../src/aqua-sim-ng/model/aqua-sim-routing-dummy.h:25, 8 from ../src/aqua-sim-ng/model/aqua-sim-routing-dummy.cc:21: 9 ../src/aqua-sim-ng/model/aqua-sim-channel.h:68:18: error: conflicting return type specified for ‘virtual size_t ns3::AquaSimChannel::GetNDevices() const’ 10 virtual size_t GetNDevices (void) const; 11 ^ 12 In file included from ../src/aqua-sim-ng/model/aqua-sim-channel.h:24:0, 13 from ../src/aqua-sim-ng/model/aqua-sim-phy.h:29, 14 from ../src/aqua-sim-ng/model/aqua-sim-net-device.h:38, 15 from ../src/aqua-sim-ng/model/aqua-sim-routing.h:35, 16 from ../src/aqua-sim-ng/model/aqua-sim-routing-dummy.h:25, 17 from ../src/aqua-sim-ng/model/aqua-sim-routing-dummy.cc:21: 18 ./ns3/channel.h:64:20: error: overriding ‘virtual uint32_t ns3::Channel::GetNDevices() const’ 19 virtual uint32_t GetNDevices (void) const = 0; 20 ^ 21 In file included from /usr/include/c++/5/unordered_map:35:0, 22 from ./ns3/cs-lru.h:28, 23 from ./ns3/aqua-sim-ng-module.h:65, 24 from ../src/aqua-sim-ng/examples/named_data_example.cc:25: 25 /usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options. 26 #error This file requires compiler and library support \ 27 ^ 28 In file included from ./ns3/aqua-sim-ng-module.h:65:0, 29 from ../src/aqua-sim-ng/examples/named_data_example.cc:25: 30 ./ns3/cs-lru.h:46:3: error: identifier ‘decltype’ is a keyword in C++11 [-Werror=c++0x-compat] 31 std::unordered_map<uint8_t*, decltype(item_list.begin()) > item_map; 32 ^ 33 In file included from ./ns3/aqua-sim-phy.h:29:0, 34 from ./ns3/aqua-sim-net-device.h:38, 35 from ./ns3/aqua-sim-attack-model.h:26, 36 from ./ns3/aqua-sim-ng-module.h:11, 37 from ../src/aqua-sim-ng/examples/named_data_example.cc:25: 38 ./ns3/aqua-sim-channel.h:68:18: error: conflicting return type specified for ‘virtual size_t ns3::AquaSimChannel::GetNDevices() const’ 39 virtual size_t GetNDevices (void) const; 40 ^ 41 In file included from ./ns3/network-module.h:19:0, 42 from ../src/aqua-sim-ng/examples/named_data_example.cc:22: 43 ./ns3/channel.h:64:20: error: overriding ‘virtual uint32_t ns3::Channel::GetNDevices() const’ 44 virtual uint32_t GetNDevices (void) const = 0; 45 ^ 46 In file included from ./ns3/aqua-sim-ng-module.h:17:0, 47 from ../src/aqua-sim-ng/examples/named_data_example.cc:25: 48 ./ns3/aqua-sim-header-mac.h:396:26: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 49 uint64_t m_node_list = 0; 50 ^ 51 ./ns3/aqua-sim-header-mac.h:490:25: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 52 uint8_t m_hop_count = 0; 53 ^ 54 ./ns3/aqua-sim-header-mac.h:498:23: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 55 uint32_t m_reward = 0; 56 ^ 57 ./ns3/aqua-sim-header-mac.h:500:31: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 58 uint32_t m_ack_message_id = 0; 59 ^ 60 ./ns3/aqua-sim-header-mac.h:506:25: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 61 uint64_t m_rx_power = 0; 62 ^ 63 ./ns3/aqua-sim-header-mac.h:509:32: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 64 uint32_t m_direct_distance = 0; 65 ^ 66 ./ns3/aqua-sim-header-mac.h:512:34: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 67 uint32_t m_next_hop_distance = 0; 68 ^ 69 ./ns3/aqua-sim-header-mac.h:515:33: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 70 uint32_t m_optimal_distance = 0; 71 ^ 72 ./ns3/aqua-sim-header-mac.h:518:31: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 73 uint8_t m_max_hops_number = 0; 74 ^ 75 ./ns3/aqua-sim-header-mac.h:521:28: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 76 double m_multiplier_64 = 10000000000000; 77 ^ 78 ./ns3/aqua-sim-header-mac.h:522:28: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 79 double m_multiplier_32 = 10000; 80 ^ 81 In file included from ./ns3/aqua-sim-ng-module.h:27:0, 82 from ../src/aqua-sim-ng/examples/named_data_example.cc:25: 83 ./ns3/aqua-sim-mac-sfama.h:199:25: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 84 double m_packet_size = 50; 85 ^ 86 In file included from ./ns3/aqua-sim-ng-module.h:37:0, 87 from ../src/aqua-sim-ng/examples/named_data_example.cc:25: 88 ./ns3/aqua-sim-phy-cmn.h:200:27: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 89 bool m_collision_flag = false; 90 ^ 91 In file included from ./ns3/aqua-sim-ng-module.h:65:0, 92 from ../src/aqua-sim-ng/examples/named_data_example.cc:25: 93 ./ns3/cs-lru.h:46:8: error: ‘unordered_map’ in namespace ‘std’ does not name a template type 94 std::unordered_map<uint8_t*, decltype(item_list.begin()) > item_map; 95 ^ 96 In file included from ./ns3/aqua-sim-ng-module.h:66:0, 97 from ../src/aqua-sim-ng/examples/named_data_example.cc:25: 98 ./ns3/cs-random.h:34:16: error: ‘unordered_map’ in namespace ‘std’ does not name a template type 99 typedef std::unordered_map<uint8_t*,uint8_t*> randomCache; 100 ^ 101 ./ns3/cs-random.h:44:4: error: ‘randomCache’ does not name a type 102 randomCache m_cache; 103 ^ 104 cc1plus: all warnings being treated as errors 105 In file included from /usr/include/c++/5/unordered_map:35:0, 106 from ./ns3/cs-lru.h:28, 107 from ./ns3/aqua-sim-ng-module.h:65, 108 from ../src/aqua-sim-ng/examples/bMAC.cc:25: 109 /usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options. 110 #error This file requires compiler and library support \ 111 ^ 112 In file included from ./ns3/aqua-sim-ng-module.h:65:0, 113 from ../src/aqua-sim-ng/examples/bMAC.cc:25: 114 ./ns3/cs-lru.h:46:3: error: identifier ‘decltype’ is a keyword in C++11 [-Werror=c++0x-compat] 115 std::unordered_map<uint8_t*, decltype(item_list.begin()) > item_map; 116 ^ 117 In file included from ./ns3/aqua-sim-phy.h:29:0, 118 from ./ns3/aqua-sim-net-device.h:38, 119 from ./ns3/aqua-sim-attack-model.h:26, 120 from ./ns3/aqua-sim-ng-module.h:11, 121 from ../src/aqua-sim-ng/examples/bMAC.cc:25: 122 ./ns3/aqua-sim-channel.h:68:18: error: conflicting return type specified for ‘virtual size_t ns3::AquaSimChannel::GetNDevices() const’ 123 virtual size_t GetNDevices (void) const; 124 ^ 125 In file included from ./ns3/network-module.h:19:0, 126 from ../src/aqua-sim-ng/examples/bMAC.cc:22: 127 ./ns3/channel.h:64:20: error: overriding ‘virtual uint32_t ns3::Channel::GetNDevices() const’ 128 virtual uint32_t GetNDevices (void) const = 0; 129 ^ 130 In file included from ./ns3/aqua-sim-ng-module.h:17:0, 131 from ../src/aqua-sim-ng/examples/bMAC.cc:25: 132 ./ns3/aqua-sim-header-mac.h:396:26: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 133 uint64_t m_node_list = 0; 134 ^ 135 ./ns3/aqua-sim-header-mac.h:490:25: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 136 uint8_t m_hop_count = 0; 137 ^ 138 ./ns3/aqua-sim-header-mac.h:498:23: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 139 uint32_t m_reward = 0; 140 ^ 141 ./ns3/aqua-sim-header-mac.h:500:31: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 142 uint32_t m_ack_message_id = 0; 143 ^ 144 ./ns3/aqua-sim-header-mac.h:506:25: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 145 uint64_t m_rx_power = 0; 146 ^ 147 ./ns3/aqua-sim-header-mac.h:509:32: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 148 uint32_t m_direct_distance = 0; 149 ^ 150 ./ns3/aqua-sim-header-mac.h:512:34: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 151 uint32_t m_next_hop_distance = 0; 152 ^ 153 ./ns3/aqua-sim-header-mac.h:515:33: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 154 uint32_t m_optimal_distance = 0; 155 ^ 156 ./ns3/aqua-sim-header-mac.h:518:31: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 157 uint8_t m_max_hops_number = 0; 158 ^ 159 ./ns3/aqua-sim-header-mac.h:521:28: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 160 double m_multiplier_64 = 10000000000000; 161 ^ 162 ./ns3/aqua-sim-header-mac.h:522:28: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 163 double m_multiplier_32 = 10000; 164 ^ 165 In file included from ./ns3/aqua-sim-ng-module.h:27:0, 166 from ../src/aqua-sim-ng/examples/bMAC.cc:25: 167 ./ns3/aqua-sim-mac-sfama.h:199:25: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 168 double m_packet_size = 50; 169 ^ 170 In file included from ./ns3/aqua-sim-ng-module.h:37:0, 171 from ../src/aqua-sim-ng/examples/bMAC.cc:25: 172 ./ns3/aqua-sim-phy-cmn.h:200:27: error: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [-Werror] 173 bool m_collision_flag = false; 174 ^ 175 In file included from ./ns3/aqua-sim-ng-module.h:65:0, 176 from ../src/aqua-sim-ng/examples/bMAC.cc:25: 177 ./ns3/cs-lru.h:46:8: error: ‘unordered_map’ in namespace ‘std’ does not name a template type 178 std::unordered_map<uint8_t*, decltype(item_list.begin()) > item_map; 179 ^ 180 In file included from ./ns3/aqua-sim-ng-module.h:66:0, 181 from ../src/aqua-sim-ng/examples/bMAC.cc:25: 182 ./ns3/cs-random.h:34:16: error: ‘unordered_map’ in namespace ‘std’ does not name a template type 183 typedef std::unordered_map<uint8_t*,uint8_t*> randomCache; 184 ^ 185 ./ns3/cs-random.h:44:4: error: ‘randomCache’ does not name a type 186 randomCache m_cache; 187 ^ 188 cc1plus: all warnings being treated as errors 189 Waf: Leaving directory `/home/aron/ns3/ns-allinone-3.19/ns-3.19/build'