Closed
Description
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