Using the new Arduino IDE for ESP8266 and found bugs, report them here

Moderator: igrr

User avatar
By ClaytonAllen
#23088 Greetings,

So I am now in my third day of building with the ESP8266 Modules. It seems I've hit a speed bump.

When including the ESP8266WebServer.h into my sketch and try to compile it I get a long list of errors. Please see below:

Code: Select allArduino: 1.6.5 (Mac OS X), Board: "NodeMCU (ESP8266 ESP-12 Module), 80 MHz, 115200"

In file included from sketch_jul12a.ino:1:0:
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:39:3: error: 'String' does not name a type
   String  filename;
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:40:3: error: 'String' does not name a type
   String  name;
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:41:3: error: 'String' does not name a type
   String  type;
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:62:3: error: 'String' does not name a type
   String uri() { return _currentUri; }
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:64:3: error: 'WiFiClient' does not name a type
   WiFiClient client() { return _currentClient; }
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:67:3: error: 'String' does not name a type
   String arg(const char* name);   // get request argument value by name
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:68:3: error: 'String' does not name a type
   String arg(int i);              // get request argument value by number
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:69:3: error: 'String' does not name a type
   String argName(int i);          // get request argument name by number
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:77:56: error: 'String' has not been declared
   void send(int code, const char* content_type = NULL, String content = String(""));
                                                        ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:78:43: error: 'String' has not been declared
   void send(int code, char* content_type, String content);
                                           ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:79:23: error: 'String' has not been declared
   void send(int code, String content_type, String content);
                       ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:79:44: error: 'String' has not been declared
   void send(int code, String content_type, String content);
                                            ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:81:19: error: 'String' has not been declared
   void sendHeader(String name, String value, bool first = false);
                   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:81:32: error: 'String' has not been declared
   void sendHeader(String name, String value, bool first = false);
                                ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:82:20: error: 'String' has not been declared
   void sendContent(String content);
                    ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:84:49: error: 'String' has not been declared
 template<typename T> size_t streamFile(T &file, String contentType){
                                                 ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:104:22: error: 'WiFiClient' has not been declared
   bool _parseRequest(WiFiClient& client);
                      ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:105:24: error: 'String' has not been declared
   void _parseArguments(String data);
                        ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:107:19: error: 'WiFiClient' has not been declared
   void _parseForm(WiFiClient& client, String boundary, uint32_t len);
                   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:107:39: error: 'String' has not been declared
   void _parseForm(WiFiClient& client, String boundary, uint32_t len);
                                       ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:109:27: error: 'WiFiClient' has not been declared
   uint8_t _uploadReadByte(WiFiClient& client);
                           ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:113:5: error: 'String' does not name a type
     String key;
     ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:114:5: error: 'String' does not name a type
     String value;
     ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:117:3: error: 'WiFiServer' does not name a type
   WiFiServer  _server;
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:119:3: error: 'WiFiClient' does not name a type
   WiFiClient  _currentClient;
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:121:3: error: 'String' does not name a type
   String      _currentUri;
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:127:3: error: 'String' does not name a type
   String           _responseHeaders;
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:77:82: error: 'String' was not declared in this scope
   void send(int code, const char* content_type = NULL, String content = String(""));
                                                                                  ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h: In member function 'size_t ESP8266WebServer::streamFile(T&, int)':
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:85:3: error: 'String' was not declared in this scope
   String head = "HTTP/1.1 200 OK\r\nContent-Type: ";
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:85:10: error: expected ';' before 'head'
   String head = "HTTP/1.1 200 OK\r\nContent-Type: ";
          ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:86:3: error: 'head' was not declared in this scope
   head += contentType;
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:92:3: error: '_currentClient' was not declared in this scope
   _currentClient.print(head);
   ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:97:12: error: there are no arguments to 'delay' that depend on a template parameter, so a declaration of 'delay' must be available [-fpermissive]
     delay(1);
            ^
/Users/Clayton/Library/Arduino15/packages/esp8266/hardware/esp8266/1.6.4-673-g8cd3697/libraries/ESP8266WebServer/src/ESP8266WebServer.h:97:12: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
Error compiling.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.


Any assistance would be appreciated. Thanks
User avatar
By tytower
#23127 There is probably more but the main error is its not finding your String library . How knowledgeable are you . Do you have an Arduino board ? If so put one of the String examples on it and see if it compiles . Are you using windows or linux or Osx ?

Wstring.h and cpp are in installed directory/hardware/arduino/avr/cores and in cores in Preferences click on bottom left link and follow through to same directory for ESP8266

I would say you don't have the libraries installed correctly. maybe try again
OH and how are you doing this is it just to the esp8266 alone or are you trying to put an arduino board in there too?