微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类 ESP8266WebServer 的引用问题

如何解决类 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 举报,一经查实,本站将立刻删除。