如何解决类 ESP8266WebServer 的引用问题
我试图“即时”声明 ESP8266WebServer,但在编译时遇到问题。
declaration of main.ino:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer* server;
...
以及稍后在 setup() 中:
void setup(){
....
if ( BUTTON_pressed ){
server = new ESP8266WebServer(80);
server->on ( "/",handleRoot );
}
...
}//setup()
文件“esp8266_root.h”中使用的变量'server':
#ifndef _ESP8266_ROOT_H_
#define _ESP8266_ROOT_H_
#include <ESP8266WebServer.h>
void handleRoot();
extern ESP8266WebServer* server;
#endif
In file included from /tmp/arduino_build_269220/sketch/esp8266_root.h:4:0,from /home/svd/Arduino/esp/esp8266_ws2812_web2/esp8266_ws2812_web2.ino:13:
/home/svd/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WebServer/src/ESP8266WebServer.h: In instantiation of 'class esp8266webserver::ESP8266WebServerTemplate<WiFiServer>':
/home/svd/Arduino/esp/esp8266_ws2812_web2/esp8266_ws2812_web2.ino:72:35: required from here
/home/svd/.arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WebServer/src/ESP8266WebServer.h:80:53: error: no type named 'ClientType' in 'class WiFiServer'
using ClientType = typename ServerType::ClientType;
怎么了?你怎么能用条件声明创建的“服务器”并在草图的其他文件中使用它?
解决方法
答案很简单:在 esp8266 项目中不要在某处使用
#include <WiFi.h>
一定是
#include <ESP8266WiFi.h>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。