khoih-prog / EthernetWebServer

This is simple yet complete WebServer library for AVR, AVR Dx, Portenta_H7, Teensy, SAM DUE, SAMD21/SAMD51, nRF52, STM32, RP2040-based, etc. boards running Ethernet shields. The functions are similar and compatible to ESP8266/ESP32 WebServer libraries to make life much easier to port sketches from ESP8266/ESP32. Coexisting now with `ESP32 WebServer` and `ESP8266 ESP8266WebServer` libraries. Ethernet_Generic library is used as default for W5x00 with custom SPI
MIT License
178 stars 49 forks source link

Error During compilation for ESP32 + W5500 "cannot declare variable 'server' to be of abstract type 'EthernetServer'" #11

Closed ShahoffAndrew closed 3 years ago

ShahoffAndrew commented 3 years ago

Arduino: 1.8.13 (Windows 10), Board: "ESP32 Dev Module, Enabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

--------cut--------

IC:\Users\andrew\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\cores\esp32" "-IC:\Users\andrew\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\variants\esp32" "-IC:\Users\andrew\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\SPI\src" "-IC:\Users\andrew\Documents\Arduino\libraries\EthernetWebServer\src" "-IC:\Users\andrew\Documents\Arduino\libraries\Functional-Vlpp\src" "-IC:\Program Files (x86)\Arduino\libraries\Ethernet\src" "Q:\TMP\arduino_build_771611\sketch\EthernetLarge.cpp" -o "Q:\TMP\arduino_build_771611\sketch\EthernetLarge.cpp.o"

In file included from Q:\TMP\arduino_build_771611\sketch\defines.h:348:0,

             from C:\Users\andrew\Documents\Arduino\Training\EthernetWebServer\EthernetWebServer.ino:44:

C:\Users\andrew\Documents\Arduino\libraries\EthernetWebServer\src/EthernetWebServer.h:324:21: error: cannot declare field 'EthernetWebServer::_server' to be of abstract type 'EthernetServer'

 EthernetServer  _server;

                 ^

In file included from Q:\TMP\arduino_build_771611\sketch\defines.h:314:0,

             from C:\Users\andrew\Documents\Arduino\Training\EthernetWebServer\EthernetWebServer.ino:44:

Q:\TMP\arduino_build_771611\sketch\EthernetLarge.h:293:7: note: because the following virtual functions are pure within 'EthernetServer':

class EthernetServer : public Server {

   ^

In file included from C:\Users\andrew\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\cores\esp32/Arduino.h:152:0,

             from Q:\TMP\arduino_build_771611\sketch\EthernetWebServer.ino.cpp:1:

C:\Users\andrew\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\cores\esp32/Server.h:28:18: note: virtual void Server::begin(uint16_t)

 virtual void begin(uint16_t port=0) =0;

              ^

EthernetWebServer:48:16: error: cannot declare variable 'server' to be of abstract type 'EthernetServer'

EthernetServer server(80);

            ^

Using library SPI at version 1.0 in folder: C:\Users\andrew\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\SPI

Using library EthernetWebServer at version 1.0.13 in folder: C:\Users\andrew\Documents\Arduino\libraries\EthernetWebServer

Using library Functional-Vlpp at version 1.0.1 in folder: C:\Users\andrew\Documents\Arduino\libraries\Functional-Vlpp

Using library Ethernet at version 2.0.0 in folder: C:\Program Files (x86)\Arduino\libraries\Ethernet

exit status 1

cannot declare variable 'server' to be of abstract type 'EthernetServer'

khoih-prog commented 3 years ago

Did you try to follow the instructions for ESP32 in Libraries' Patches

To fix ESP32 compile error, just copy the following file into the ESP32 cores/esp32 directory (e.g. ./arduino-1.8.12/hardware/espressif/cores/esp32) to overwrite the old file: Server.h)