如何修复 PlatformIO ESP8266 ArduinoOTA error: stopAll is not a member of WiFiUDP
问题:
编译 PlatformIO 固件时,你看到类似这样的错误消息
arduinoota_build_error.txt
/home/uli/.platformio/packages/framework-arduinoespressif8266/libraries/ArduinoOTA/ArduinoOTA.cpp: In member function 'void ArduinoOTAClass::_runUpdate()':
/home/uli/.platformio/packages/framework-arduinoespressif8266/libraries/ArduinoOTA/ArduinoOTA.cpp:268:12: error: 'stopAll' is not a member of 'WiFiUDP'
268 | WiFiUDP::stopAll();
| ^~~~~~~解决方案
从 platform.ini 的 lib_deps 部分删除 WiFi。修复前:
platformio.ini.before
lib_deps =
ESP Async Webserver@1.2.3
ArduinoJSON@6.17.2
WiFi修复后:
platformio.ini.after
lib_deps =
ESP Async Webserver@1.2.3
ArduinoJSON@6.17.2现在检查你的源代码并替换任何
wifi_include_fix.cpp
#include <WiFi.h>为
wifi_include_fix_after.cpp
#include <ESP8266WiFi.h>以防止 如何修复 PlatformIO ESP8266 WiFi.h: No Such File or Directory 中所述的 WiFi.h: No Such File or Directory 问题
现在你需要从项目目录中完全删除 .pio 文件夹以确保干净构建:
clean_pio.sh
rm -rf .pio之后,重新编译你的固件。
Check out similar posts by category:
Arduino, Electronics, ESP8266/ESP32, PlatformIO
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow