I made the latest update of platformio (3.2.0 when writing these lines) and a project that was compiling perfectly suddenly fail each time. Yesterday, before the update it worked like a charm.
I clean project, remove all libraries and same error.
I got systematically the same error in different projects :
error: ‘HTTPMethod’ has not been declared
The error in the stack in my code is located in “#include <WebServer.h>” line.
I tried to go back to the last version but it still doesn’t work. Any idea ?
Here is the full log
* Executing task: C:\Users\nicol\.platformio\penv\Scripts\platformio.exe run --environment USB
Processing USB (platform: espressif32; board: wt32-eth01; framework: arduino)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/wt32-eth01.html
PLATFORM: Espressif 32 (6.3.0) > Wireless-Tag WT32-ETH01 Ethernet Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
- framework-arduinoespressif32 @ 3.20009.0 (2.0.9)
- tool-esptoolpy @ 1.40501.0 (4.5.1)
- toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 35 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ArduinoJson @ 6.21.2
|-- WiFiManager @ 2.0.16-rc.2+sha.9b8de0d
|-- ArduinoOTA @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- SPIFFS @ 2.0.0
|-- WebServer @ 2.0.0
|-- WiFi @ 2.0.0
Building in release mode
Compiling .pio\build\USB\src\HttpServer.cpp.o
Compiling .pio\build\USB\src\NetworkManager.cpp.o
Archiving .pio\build\USB\lib9e8\libWiFi.a
Compiling .pio\build\USB\libaf2\ESPmDNS\ESPmDNS.cpp.o
Compiling .pio\build\USB\lib477\Update\HttpsOTAUpdate.cpp.o
Compiling .pio\build\USB\lib477\Update\Updater.cpp.o
Compiling .pio\build\USB\lib828\FS\FS.cpp.o
Compiling .pio\build\USB\lib828\FS\vfs_api.cpp.o
Compiling .pio\build\USB\lib8ab\WebServer\Parsing.cpp.o
In file included from C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/WebServer.h:63,
from src/HttpServer.h:3,
from src/HttpServer.cpp:6:
C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/detail/RequestHandler.h:10:28: error: 'HTTPMethod' has not been declared
virtual bool canHandle(HTTPMethod method, String uri) { (void) method; (void) uri; return false; }
^~~~~~~~~~
C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/detail/RequestHandler.h:12:44: error: 'HTTPMethod' has not been declared
virtual bool handle(WebServer& server, HTTPMethod requestMethod, String requestUri) { (void) server; (void) requestMethod; (void) requestUri; return false; }
^~~~~~~~~~
* Executing task: C:\Users\nicol\.platformio\penv\Scripts\platformio.exe run
Processing wt32-eth01 (platform: espressif32; board: wt32-eth01; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/wt32-eth01.html
PLATFORM: Espressif 32 (6.3.0) > Wireless-Tag WT32-ETH01 Ethernet Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
- framework-arduinoespressif32 @ 3.20009.0 (2.0.9)
- tool-esptoolpy @ 1.40501.0 (4.5.1)
- toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 33 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Ethernet @ 2.0.0
|-- WebServer @ 2.0.0
|-- WiFi @ 2.0.0
Building in release mode
Compiling .pio\build\wt32-eth01\src\main.cpp.o
Building .pio\build\wt32-eth01\bootloader.bin
Generating partitions .pio\build\wt32-eth01\partitions.bin
esptool.py v4.5.1
Creating esp32 image...
Merged 1 ELF section
Successfully created esp32 image.
Compiling .pio\build\wt32-eth01\lib9e8\WiFi\WiFi.cpp.o
Compiling .pio\build\wt32-eth01\lib9e8\WiFi\WiFiAP.cpp.o
Compiling .pio\build\wt32-eth01\lib9e8\WiFi\WiFiClient.cpp.o
Compiling .pio\build\wt32-eth01\lib9e8\WiFi\WiFiGeneric.cpp.o
Compiling .pio\build\wt32-eth01\lib9e8\WiFi\WiFiMulti.cpp.o
Compiling .pio\build\wt32-eth01\lib9e8\WiFi\WiFiSTA.cpp.o
Compiling .pio\build\wt32-eth01\lib9e8\WiFi\WiFiScan.cpp.o
Compiling .pio\build\wt32-eth01\lib9e8\WiFi\WiFiServer.cpp.o
Compiling .pio\build\wt32-eth01\lib9e8\WiFi\WiFiUdp.cpp.o
Compiling .pio\build\wt32-eth01\lib8eb\Ethernet\ETH.cpp.o
Compiling .pio\build\wt32-eth01\lib828\FS\FS.cpp.o
src/main.cpp:40: warning: "ETH_CLK_MODE" redefined
#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT // ETH_CLOCK_GPIO0_IN
In file included from C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.h:29,
from C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal.h:83,
from C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:36,
from C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiClient.h:24,
from C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFi.h:37,
from C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.h:24,
from src/main.cpp:30:
C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/variants/wt32-eth01/pins_arduino.h:26: note: this is the location of the previous definition
#define ETH_CLK_MODE ETH_CLOCK_GPIO0_IN
In file included from C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/WebServer.h:63,
from src/main.cpp:32:
C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/detail/RequestHandler.h:10:28: error: 'HTTPMethod' has not been declared
virtual bool canHandle(HTTPMethod method, String uri) { (void) method; (void) uri; return false; }
^~~~~~~~~~
C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/detail/RequestHandler.h:12:44: error: 'HTTPMethod' has not been declared
virtual bool handle(WebServer& server, HTTPMethod requestMethod, String requestUri) { (void) server; (void) requestMethod; (void) requestUri; return false; }
^~~~~~~~~~
In file included from src/main.cpp:32:
C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/WebServer.h:88:27: error: 'HTTPMethod' has not been declared
void on(const Uri &uri, HTTPMethod method, THandlerFunction fn);
^~~~~~~~~~
C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/WebServer.h:89:27: error: 'HTTPMethod' has not been declared
void on(const Uri &uri, HTTPMethod method, THandlerFunction fn, THandlerFunction ufn); //ufn handles file uploads
^~~~~~~~~~
C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/WebServer.h:96:3: error: 'HTTPMethod' does not name a type; did you mean 'HTTPAuthMethod'?
HTTPMethod method() { return _currentMethod; }
^~~~~~~~~~
HTTPAuthMethod
C:/Users/nicol/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src/WebServer.h:179:3: error: 'HTTPMethod' does not name a type; did you mean 'HTTPAuthMethod'?
HTTPMethod _currentMethod;
^~~~~~~~~~
HTTPAuthMethod
src/main.cpp: In function 'void setup()':
src/main.cpp:148:31: error: 'HTTP_GET' was not declared in this scope
server.on("/getRandomData", HTTP_GET, handleAjax); // Request and callback function of the get method sent by ajax in the registration web page
^~~~~~~~
src/main.cpp:148:31: note: suggested alternative: 'DST_EET'
server.on("/getRandomData", HTTP_GET, handleAjax); // Request and callback function of the get method sent by ajax in the registration web page
^~~~~~~~
DST_EET
*** [.pio\build\wt32-eth01\src\main.cpp.o] Error 1
======================================================================================= [FAILED] Took 14.35 seconds =======================================================================================
* The terminal process "C:\Users\nicol\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1.
* Terminal will be reused by tasks, press any key to close it.
Thanks for your answer.
I follow your recommendations and I got still the same error.
I thing something is broken in my platformio …
Any folfer I can delete in my system ? I’m running on windows.
Any other idea ?