Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation error when using PlatformIO #64

Open
MicSG-dev opened this issue Dec 19, 2024 · 0 comments
Open

Compilation error when using PlatformIO #64

MicSG-dev opened this issue Dec 19, 2024 · 0 comments

Comments

@MicSG-dev
Copy link

When using PlatformIO with the following platformio.ini file:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps =
    https://github.com/sstaub/Ethernet3.git

And running the WebServer example, several compilation errors occur:

src/main.cpp: In function 'void loop()':
src/main.cpp:52:43: error: cannot allocate an object of abstract type 'EthernetClient'
   52 |   EthernetClient client = server.available();
      |                           ~~~~~~~~~~~~~~~~^~
In file included from .pio/libdeps/esp32dev/Ethernet3/src/Ethernet3.h:16,
                 from src/main.cpp:20:
.pio/libdeps/esp32dev/Ethernet3/src/EthernetClient.h:8:7: note:   because the following virtual functions are pure within 'EthernetClient':
    8 | class EthernetClient : public Client {
      |       ^~~~~~~~~~~~~~
In file included from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/Arduino.h:197,
                 from src/main.cpp:18:
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/Client.h:29:15: note:     'virtual int Client::connect(IPAddress, uint16_t, int32_t)'
   29 |   virtual int connect(IPAddress ip, uint16_t port, int32_t timeout) = 0;
      |               ^~~~~~~
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/Client.h:31:15: note:     'virtual int Client::connect(const char*, uint16_t, int32_t)'
   31 |   virtual int connect(const char *host, uint16_t port, int32_t timeout) = 0;
      |               ^~~~~~~
src/main.cpp:52:18: error: cannot declare variable 'client' to be of abstract type 'EthernetClient'
   52 |   EthernetClient client = server.available();
      |                  ^~~~~~
Compiling .pio\build\esp32dev\FrameworkArduino\FunctionalInterrupt.cpp.o
*** [.pio\build\esp32dev\src\main.cpp.o] Error 1
In file included from .pio/libdeps/esp32dev/Ethernet3/src/Dns.cpp:7:
.pio/libdeps/esp32dev/Ethernet3/src/utility/util.h:4: warning: "htons" redefined
    4 | #define htons(x) ( ((x)<< 8 & 0xFF00) | \
      |
In file included from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/lwip/src/include/lwip/arch.h:48,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/lwip/src/include/lwip/debug.h:40,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/lwip/src/include/lwip/opt.h:52,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/lwip/src/include/lwip/ip_addr.h:40,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/IPAddress.h:25,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/Arduino.h:196,
                 from .pio/libdeps/esp32dev/Ethernet3/src/utility/w5500.h:20,
                 from .pio/libdeps/esp32dev/Ethernet3/src/Dns.cpp:5:
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/port/esp32xx/include/arch/cc.h:28: note: this is the location of the previous definition
   28 | #define htons(x) __builtin_bswap16(x)
      |
.pio/libdeps/esp32dev/Ethernet3/src/utility/util.h:6: warning: "ntohs" redefined
    6 | #define ntohs(x) htons(x)
      |
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/port/esp32xx/include/arch/cc.h:29: note: this is the location of the previous definition
   29 | #define ntohs(x) __builtin_bswap16(x)
      |
.pio/libdeps/esp32dev/Ethernet3/src/utility/util.h:8: warning: "htonl" redefined
    8 | #define htonl(x) ( ((x)<<24 & 0xFF000000UL) | \
      |
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/port/esp32xx/include/arch/cc.h:30: note: this is the location of the previous definition
   30 | #define htonl(x) __builtin_bswap32(x)
      |
.pio/libdeps/esp32dev/Ethernet3/src/utility/util.h:12: warning: "ntohl" redefined
   12 | #define ntohl(x) htonl(x)
      |
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/port/esp32xx/include/arch/cc.h:31: note: this is the location of the previous definition
   31 | #define ntohl(x) __builtin_bswap32(x)
      |
In file included from .pio/libdeps/esp32dev/Ethernet3/src/Dhcp.cpp:10:
.pio/libdeps/esp32dev/Ethernet3/src/utility/util.h:4: warning: "htons" redefined
    4 | #define htons(x) ( ((x)<< 8 & 0xFF00) | \
      |
In file included from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/lwip/src/include/lwip/arch.h:48,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/lwip/src/include/lwip/debug.h:40,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/lwip/src/include/lwip/opt.h:52,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/lwip/src/include/lwip/ip_addr.h:40,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/IPAddress.h:25,
                 from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/Arduino.h:196,
                 from .pio/libdeps/esp32dev/Ethernet3/src/utility/w5500.h:20,
                 from .pio/libdeps/esp32dev/Ethernet3/src/Dhcp.cpp:4:
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/port/esp32xx/include/arch/cc.h:28: note: this is the location of the previous definition
   28 | #define htons(x) __builtin_bswap16(x)
      |
.pio/libdeps/esp32dev/Ethernet3/src/utility/util.h:6: warning: "ntohs" redefined
    6 | #define ntohs(x) htons(x)
      |
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/port/esp32xx/include/arch/cc.h:29: note: this is the location of the previous definition
   29 | #define ntohs(x) __builtin_bswap16(x)
      |
.pio/libdeps/esp32dev/Ethernet3/src/utility/util.h:8: warning: "htonl" redefined
    8 | #define htonl(x) ( ((x)<<24 & 0xFF000000UL) | \
      |
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/port/esp32xx/include/arch/cc.h:30: note: this is the location of the previous definition
   30 | #define htonl(x) __builtin_bswap32(x)
      |
.pio/libdeps/esp32dev/Ethernet3/src/utility/util.h:12: warning: "ntohl" redefined
   12 | #define ntohl(x) htonl(x)
      |
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32-libs/esp32/include/lwip/port/esp32xx/include/arch/cc.h:31: note: this is the location of the previous definition
   31 | #define ntohl(x) __builtin_bswap32(x)
      |
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp: In member function 'virtual void EthernetServer::begin()':
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp:19:20: error: cannot declare variable 'client' to be of abstract type 'EthernetClient'
   19 |     EthernetClient client(sock);
      |                    ^~~~~~
In file included from .pio/libdeps/esp32dev/Ethernet3/src/Ethernet3.h:16,
                 from .pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp:7:
.pio/libdeps/esp32dev/Ethernet3/src/EthernetClient.h:8:7: note:   because the following virtual functions are pure within 'EthernetClient':
    8 | class EthernetClient : public Client {
      |       ^~~~~~~~~~~~~~
In file included from C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/Arduino.h:197,
                 from .pio/libdeps/esp32dev/Ethernet3/src/utility/w5500.h:20,
                 from .pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp:1:
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/Client.h:29:15: note:     'virtual int Client::connect(IPAddress, uint16_t, int32_t)'
   29 |   virtual int connect(IPAddress ip, uint16_t port, int32_t timeout) = 0;
      |               ^~~~~~~
C:/Users/MichelGalvao/.platformio/packages/framework-arduinoespressif32@src-e5a7fd5d9117bd8a322277fde59ac3d3/cores/esp32/Client.h:31:15: note:     'virtual int Client::connect(const char*, uint16_t, int32_t)'
   31 |   virtual int connect(const char *host, uint16_t port, int32_t timeout) = 0;
      |               ^~~~~~~
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp: In member function 'void EthernetServer::accept()':
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp:34:20: error: cannot declare variable 'client' to be of abstract type 'EthernetClient'
   34 |     EthernetClient client(sock);
      |                    ^~~~~~
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp: At global scope:
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp:51:16: error: invalid abstract return type for member function 'EthernetClient EthernetServer::available()'
   51 | EthernetClient EthernetServer::available()
      |                ^~~~~~~~~~~~~~
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp: In member function 'EthernetClient EthernetServer::available()':
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp:56:20: error: cannot declare variable 'client' to be of abstract type 'EthernetClient'
   56 |     EthernetClient client(sock);
      |                    ^~~~~~
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp:62:16: error: cannot allocate an object of abstract type 'EthernetClient'
   62 |         return client;
      |                ^~~~~~
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp:67:37: error: invalid cast to abstract class type 'EthernetClient'
   67 |   return EthernetClient(MAX_SOCK_NUM);
      |                                     ^
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp: In member function 'virtual size_t EthernetServer::write(const uint8_t*, size_t)':
.pio/libdeps/esp32dev/Ethernet3/src/EthernetServer.cpp:82:20: error: cannot declare variable 'client' to be of abstract type 'EthernetClient'
   82 |     EthernetClient client(sock);
      |                    ^~~~~~
*** [.pio\build\esp32dev\lib654\Ethernet3\EthernetServer.cpp.o] Error 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant