Errore nella libreria ESP8266WiFi.h

Ho ripreso in mano dopo molto tempo una NodeMCU V3 cinese che avevo comprato per fare esperimenti. All'epoca avevo solo provato qualche esempio. In particolare 'BasicHttpClient' e ricordo che funzionava con la mia rete WiFi.

Attualmente ho Arduino 1.8.13 su Linux e funziona perfettamente. Ho settato la scheda 'NodeMCU 1.0 (ESP-12E Module)' e caricato un semplice programma di blink del led sulla scheda. Tutto OK.

Ho ripreso l'esempio 'BasicHttpClient', ma mi da errore in compilazione

Arduino:1.8.13 (Linux), Scheda:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"


In file included from /home/piero/Arduino/libraries/ESP8266WiFi/src/ESP8266WiFi.h:39,
                 from /home/piero/.arduino15/packages/esp8266/hardware/esp8266/3.0.1/libraries/ESP8266HTTPClient/examples/BasicHttpClient/BasicHttpClient.ino:10:
/home/piero/Arduino/libraries/ESP8266WiFi/src/WiFiClient.h:89:10: error: conflicting return type specified for 'virtual size_t WiFiClient::availableForWrite()'
   89 |   size_t availableForWrite();
      |          ^~~~~~~~~~~~~~~~~
In file included from /home/piero/.arduino15/packages/esp8266/hardware/esp8266/3.0.1/cores/esp8266/Stream.h:27,
                 from /home/piero/.arduino15/packages/esp8266/hardware/esp8266/3.0.1/cores/esp8266/HardwareSerial.h:32,
                 from /home/piero/.arduino15/packages/esp8266/hardware/esp8266/3.0.1/cores/esp8266/Arduino.h:288,
                 from /home/piero/.arduino15/packages/esp8266/hardware/esp8266/3.0.1/libraries/ESP8266HTTPClient/examples/BasicHttpClient/BasicHttpClient.ino:8:
/home/piero/.arduino15/packages/esp8266/hardware/esp8266/3.0.1/cores/esp8266/Print.h:80:21: note: overridden function is 'virtual int Print::availableForWrite()'
   80 |         virtual int availableForWrite() { return 0; }
      |                     ^~~~~~~~~~~~~~~~~
Più di una libreria trovata per "ESP8266WiFi.h"
Usata: /home/piero/Arduino/libraries/ESP8266WiFi
Non usata: /home/piero/.arduino15/packages/esp8266/hardware/esp8266/3.0.1/libraries/ESP8266WiFi
exit status 1
Errore durante la compilazione per la scheda NodeMCU 1.0 (ESP-12E Module).


Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

C'è evidentemente un errore nella libreria ESP8266WiFi.h. Ho cercato di aggiornarla attraverso Gestione librerie dell'IDE, ma la libreria ESP8266WiFi.h non compare né fra le installate, né fra le installabili o aggiornabili.

Qualcuno sa chiarirmi il mistero, o aiutarmi a compilare l'esempio?

Grazie, ciao,
P.

Non sono ferratissimo, ma credo che quei files siano dentro il package dell'esp. Hai provato ad aggiornare quello?

Il compilatore sta puntando alla libreria sbagliata cioè quella che hai messo nella tua home.
Rimuovi la cartella /home/piero/Arduino/libraries/ESP8266WiFi e vedrai che funziona tutto come dovrebbe.

Più di una libreria trovata per "ESP8266WiFi.h"
Usata: /home/piero/Arduino/libraries/ESP8266WiFi
Non usata: /home/piero/.arduino15/packages/esp8266/hardware/esp8266/3.0.1/libraries/ESP8266WiFi

Ti ringrazio per la soluzione!

Quando il mio letargico cervello si è svegliato e ha riletto con attenzione quello che il compilatore mi segnalava ci era arrivato anche lui, ma ti ringrazio per la conferma..

Ciao,
P.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.