Skip to content

Strange compiling errors since change to git version. #5390

Closed
@crndn2018

Description

@crndn2018

Basic Infos

  • This issue complies with the issue POLICY doc.
  • I have read the documentation at readthedocs and the issue is not addressed there.
  • I have tested that the issue is present in current master branch (aka latest git).
  • I have searched the issue tracker for a similar issue.
  • If there is a stack dump, I have decoded it.
  • I have filled out all fields below.

Platform

  • Hardware: [ESP-12]
  • Core Version: [e7d3cf6]
  • Development Env: [Arduino IDE]
  • Operating System: [Windows]

Settings in IDE

  • Module: [Generic ESP8266 Module]
  • Flash Mode: [qio]
  • Flash Size: [4MB]
  • lwip Variant: [v2 Lower Memory]
  • Reset Method: [ck]
  • Flash Frequency: [40Mhz]
  • CPU Frequency: [80Mhz]
  • Upload Using: [SERIAL]
  • Upload Speed: [115200] (serial upload only)

Problem Description

After i have changed from Core 2.4.2 to latest git version (2.5.0-dev, Commit e7d3cf6) my project does not compile. I get many errors related to private libraries (e.g. W5500 library for ESP) but also related to ESP internal libraries.
Unfortunately i cannot provide any source code because its a professional iot project for my company.
Please have a look a the following error messages. The most error messages concern classes containing virtual methods. All classes with virtual methods now dealed as abstract classes and cannot be instanced.
A problem i was not faced with Core 2.4.2. Additionally i get conflicting declarations.

Debug Messages

Arduino: 1.8.5 (Windows 7), Board: "Generic ESP8266 Module, 80 MHz, Flash, ck, 26 MHz, 40MHz, QIO, 4M (1M SPIFFS), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"

In file included from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:232:0:

C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266/tools/sdk/include/espconn.h:32:15: error: conflicting declaration 'typedef sint8 err_t'

 typedef sint8 err_t;

               ^

In file included from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266/tools/sdk/lwip2/include/lwip/netif.h:44:0,

                 from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\cores\esp8266/AddrList.h:79,

                 from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\cores\esp8266/IPAddress.h:196,

                 from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/ESP8266WiFi.h:31,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:221:

C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266/tools/sdk/lwip2/include/lwip/err.h:94:20: error: 'err_t' has a previous declaration as 'typedef s32_t err_t'

 typedef LWIP_ERR_T err_t;

                    ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:12:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetServer.h:18:18: error: invalid abstract return type for member function 'EthernetClient EthernetServer::available()'

   EthernetClient available();

                  ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:11:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetClient.h:8:7: note:   because the following virtual functions are pure within 'EthernetClient':

 class EthernetClient : public Client {

       ^

In file included from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClient.h:27:0,

                 from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/ESP8266WiFi.h:39,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:221:

C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\cores\esp8266/Client.h:29:21: note: 	virtual int Client::connect(const IPAddress&, uint16_t)

         virtual int connect(CONST IPAddress& ip, uint16_t port) =0;

                     ^

C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\cores\esp8266/Client.h:37:22: note: 	virtual bool Client::flush(unsigned int)

         virtual bool flush(unsigned int maxWaitMs = 0) = 0;

                      ^

C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\cores\esp8266/Client.h:38:22: note: 	virtual bool Client::stop(unsigned int)

         virtual bool stop(unsigned int maxWaitMs = 0) = 0;

                      ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:12:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetServer.h:19:18: error: invalid abstract return type for member function 'EthernetClient EthernetServer::available(uint8_t)'

   EthernetClient available(uint8_t socket);

                  ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:11:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetClient.h:8:7: note:   since type 'EthernetClient' has pure virtual functions

 class EthernetClient : public Client {

       ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:13:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/DhcpESP.h:158:15: error: cannot declare field 'DhcpClass::_dhcpUdpSocket' to be of abstract type 'EthernetUDP'

   EthernetUDP _dhcpUdpSocket;

               ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/DhcpESP.h:7:0,

                 from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:13,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetUdp.h:44:7: note:   because the following virtual functions are pure within 'EthernetUDP':

 class EthernetUDP : public UDP {

       ^

In file included from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiUdp.h:25:0,

                 from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266httpUpdate\src/ESP8266httpUpdate.h:34,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:222:

C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\cores\esp8266/Udp.h:81:27: note: 	virtual IPAddress UDP::remoteIP() const

         virtual IPAddress remoteIP() const =0;

                           ^

C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\cores\esp8266/Udp.h:83:26: note: 	virtual uint16_t UDP::remotePort() const

         virtual uint16_t remotePort() const =0;

                          ^

SmartEnergyMeter:412: error: invalid abstract type 'EthernetClient' for 'ecEthernetClient'

 EthernetClient ecEthernetClient[ETHERNET_MAX_SOCK_NUM];

                                                      ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:11:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetClient.h:8:7: note:   since type 'EthernetClient' has pure virtual functions

 class EthernetClient : public Client {

       ^

C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino: In function 'void EthernetPoll()':

SmartEnergyMeter:5401: error: cannot allocate an object of abstract type 'EthernetClient'

   if (esEthernetServer.available()) 

                                  ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:11:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetClient.h:8:7: note:   since type 'EthernetClient' has pure virtual functions

 class EthernetClient : public Client {

       ^

SmartEnergyMeter:5406: error: cannot allocate an object of abstract type 'EthernetClient'

       EthernetClient ecClient = esEthernetServer.available(i);

                                                             ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:11:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetClient.h:8:7: note:   since type 'EthernetClient' has pure virtual functions

 class EthernetClient : public Client {

       ^

SmartEnergyMeter:5406: error: cannot declare variable 'ecClient' to be of abstract type 'EthernetClient'

       EthernetClient ecClient = esEthernetServer.available(i);

                      ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:11:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetClient.h:8:7: note:   since type 'EthernetClient' has pure virtual functions

 class EthernetClient : public Client {

       ^

C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino: In function 'void EthernetPollStreaming()':

SmartEnergyMeter:5545: error: cannot allocate an object of abstract type 'EthernetClient'

   if (esEthernetStreamingServer.available())

                                           ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:11:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetClient.h:8:7: note:   since type 'EthernetClient' has pure virtual functions

 class EthernetClient : public Client {

       ^

SmartEnergyMeter:5550: error: cannot allocate an object of abstract type 'EthernetClient'

       EthernetClient ecClient = esEthernetStreamingServer.available(i);

                                                                      ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:11:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetClient.h:8:7: note:   since type 'EthernetClient' has pure virtual functions

 class EthernetClient : public Client {

       ^

SmartEnergyMeter:5550: error: cannot declare variable 'ecClient' to be of abstract type 'EthernetClient'

       EthernetClient ecClient = esEthernetStreamingServer.available(i);

                      ^

In file included from C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetESP.h:11:0,

                 from C:\Users\CD\Documents\Arduino\SmartEnergyMeter\2018-11-29\SmartEnergyMeter\SmartEnergyMeter.ino:240:

C:\Users\CD\Documents\Arduino\libraries\EthernetESP\src/EthernetClient.h:8:7: note:   since type 'EthernetClient' has pure virtual functions

 class EthernetClient : public Client {

       ^

exit status 1
invalid abstract type 'EthernetClient' for 'ecEthernetClient'

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions