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:
Arduino: 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