ESP8266 will not compile with ESP8266WiFi.h

Using the cloud compiler, when I include the ESP8266WiFi library, I get:
fatal error:
LwipIntf.h: No such file or directory
#include "LwipIntf.h"
^
compilation terminated.

Any clues for a fix is appreciated.
BTW program works fine with computer IDE

Please follow the advice given in the link below when posting code, in particular the section entitled 'Posting code and common code problems'

Use code tags (the </> icon above the compose window) to make it easier to read and copy for examination

Did you load/install the LwipIntf.h library?

@Idahowalker LwipIntf.h is in the esp8266 core

@Bill_H please add more details

Thanks for the info.

When something does not compile in ESP8266, I try with core 2.7.3 (no guarantee)

Thanks for the reply and advice. It's been a while since I used a forum...
I am simply trying to get the ESP8622 ( NodeMCU 1.0 (ESP-12E Module)
to program via the cloud instead of the Computer IDE.
Starting with simple example programs (blink) it works fine. As soon as I get to a program that requires WiFi and calls for the ESP8266WiFi Library I get this failure. I do not see the LwipIntf.h library being called from the ESP8266WiFi.h library.
I did try to include it myself both "", and <> around it. It says file not found.
Here is the complete error message.

/usr/local/bin/arduino-cli compile --fqbn esp8266:esp8266:nodemcuv2:baud=115200,dbg=Disabled,eesz=4M,exception=disabled,ip=lm2f,lvl=None____,vt=flash,wipe=none,xtal=80 --libraries /home/builder/opt/libraries/latest --build-cache-path /tmp --output-dir /tmp/354453145/build --build-path /tmp/arduino-build-3E3480DE16ED22A13A675D5CF15422B9 -v --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Adafruit ADXL345 --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Adafruit GFX Library --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Adafruit Motor Shield V2 Library --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Adafruit NeoPixel --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Adafruit SSD1306 --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Adafruit_VL53L0X --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ArduinoOTA --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/DHT sensor library --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/DallasTemperature --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/EEPROM --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266 --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266AVRISP --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266HTTPClient --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266HTTPUpdateServer --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266LLMNR --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266NetBIOS --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266SSDP --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WebServer --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFi --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFiMesh --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266httpUpdate --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266mDNS --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Espalexa --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/FauxmoESP --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/GDBStub --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Grove 3-Axis Digital Compass HMC5883L --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Hash --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/I2S --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/IRremoteESP8266 --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/LiquidCrystal_I2C --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/LittleFS --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/NetDump --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/PS2X_Library --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/RF24 --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/SD --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/SDFS --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/SHT2x --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/SPI --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/SPISlave --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Servo --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/SimpleDHT --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/TFT_Touch_Shield_V2 --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Ticker --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/VL53L0X --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/Wire --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/lwIP_PPP --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/lwIP_enc28j60 --library /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/lwIP_w5500 /tmp/354453145/HelloServer

Using board 'nodemcuv2' from platform in folder: /home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0

Using core 'esp8266' from platform in folder: /home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0

Detecting libraries used...

/home/builder/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/tools/sdk/include -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/tools/sdk/lwip2/include -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/tools/sdk/libc/xtensa-lx106-elf/include -I/tmp/arduino-build-3E3480DE16ED22A13A675D5CF15422B9/core -c -w -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -fno-exceptions -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_NODEMCU\"" -DFLASHMODE_DIO -DESP8266 -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266 -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/variants/nodemcu /tmp/arduino-build-3E3480DE16ED22A13A675D5CF15422B9/sketch/HelloServer.ino.cpp -o /dev/null

Alternatives for ESP8266WiFi.h: [ESP8266WiFi@1.0 ESP8266WiFi@1.0]

ResolveLibrary(ESP8266WiFi.h)

-> candidates: [ESP8266WiFi@1.0 ESP8266WiFi@1.0]

/home/builder/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/tools/sdk/include -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/tools/sdk/lwip2/include -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/tools/sdk/libc/xtensa-lx106-elf/include -I/tmp/arduino-build-3E3480DE16ED22A13A675D5CF15422B9/core -c -w -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -fno-exceptions -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_NODEMCU\"" -DFLASHMODE_DIO -DESP8266 -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266 -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/variants/nodemcu -I/mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFi/src /tmp/arduino-build-3E3480DE16ED22A13A675D5CF15422B9/sketch/HelloServer.ino.cpp -o /dev/null

Alternatives for wl_definitions.h: [stm32duino_ism43362_m3g_l44_1_1_1@1.1.1]

ResolveLibrary(wl_definitions.h)

-> candidates: [stm32duino_ism43362_m3g_l44_1_1_1@1.1.1]

/home/builder/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/tools/sdk/include -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/tools/sdk/lwip2/include -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/tools/sdk/libc/xtensa-lx106-elf/include -I/tmp/arduino-build-3E3480DE16ED22A13A675D5CF15422B9/core -c -w -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -fno-exceptions -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_NODEMCU\"" -DFLASHMODE_DIO -DESP8266 -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266 -I/home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/variants/nodemcu -I/mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFi/src -I/home/builder/opt/libraries/latest/stm32duino_ism43362_m3g_l44_1_1_1/src /tmp/arduino-build-3E3480DE16ED22A13A675D5CF15422B9/sketch/HelloServer.ino.cpp -o /dev/null

Alternatives for LwipIntf.h: []

ResolveLibrary(LwipIntf.h)

-> candidates: []

Multiple libraries were found for "ESP8266WiFi.h"

Used: /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFi

Not used: /home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi

Using library ESP8266WiFi at version 1.0 in folder: /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFi

Using library stm32duino_ism43362_m3g_l44_1_1_1 at version 1.1.1 in folder: /home/builder/opt/libraries/stm32duino_ism43362_m3g_l44_1_1_1

In file included from /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFi/src/ESP8266WiFi.h:34:0,

from /tmp/354453145/HelloServer/HelloServer.ino:1:

/mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFi/src/ESP8266WiFiSTA.h:30:22: fatal error: LwipIntf.h: No such file or directory

#include "LwipIntf.h"

^

compilation terminated.

Error during build: exit status 1

Here is an example I'm trying compile

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

#ifndef STASSID
#define STASSID "your-ssid"
#define STAPSK "your-password"
#endif

const char* ssid = STASSID;
const char* password = STAPSK;

ESP8266WebServer server(80);

const int led = 13;

void handleRoot() {
  digitalWrite(led, 1);
  server.send(200, "text/plain", "hello from esp8266!\r\n");
  digitalWrite(led, 0);
}

void handleNotFound() {
  digitalWrite(led, 1);
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET) ? "GET" : "POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) { message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; }
  server.send(404, "text/plain", message);
  digitalWrite(led, 0);
}

void setup(void) {
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp8266")) { Serial.println("MDNS responder started"); }

  server.on("/", handleRoot);

  server.on("/inline", []() {
    server.send(200, "text/plain", "this works as well");
  });

  server.on("/gif", []() {
    static const uint8_t gif[] PROGMEM = {
      0x47, 0x49, 0x46, 0x38, 0x37, 0x61, 0x10, 0x00, 0x10, 0x00, 0x80, 0x01,
      0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x2c, 0x00, 0x00, 0x00, 0x00,
      0x10, 0x00, 0x10, 0x00, 0x00, 0x02, 0x19, 0x8c, 0x8f, 0xa9, 0xcb, 0x9d,
      0x00, 0x5f, 0x74, 0xb4, 0x56, 0xb0, 0xb0, 0xd2, 0xf2, 0x35, 0x1e, 0x4c,
      0x0c, 0x24, 0x5a, 0xe6, 0x89, 0xa6, 0x4d, 0x01, 0x00, 0x3b
    };
    char gif_colored[sizeof(gif)];
    memcpy_P(gif_colored, gif, sizeof(gif));
    // Set the background to a random set of colors
    gif_colored[16] = millis() % 256;
    gif_colored[17] = millis() % 256;
    gif_colored[18] = millis() % 256;
    server.send(200, "image/gif", gif_colored, sizeof(gif_colored));
  });

  server.onNotFound(handleNotFound);

  /////////////////////////////////////////////////////////
  // Hook examples

  server.addHook([](const String& method, const String& url, WiFiClient* client, ESP8266WebServer::ContentTypeFunction contentType) {
    (void)method;       // GET, PUT, ...
    (void)url;          // example: /root/myfile.html
    (void)client;       // the webserver tcp client connection
    (void)contentType;  // contentType(".html") => "text/html"
    Serial.printf("A useless web hook has passed\n");
    Serial.printf("(this hook is in 0x%08x area (401x=IRAM 402x=FLASH))\n", esp_get_program_counter());
    return ESP8266WebServer::CLIENT_REQUEST_CAN_CONTINUE;
  });

  server.addHook([](const String&, const String& url, WiFiClient*, ESP8266WebServer::ContentTypeFunction) {
    if (url.startsWith("/fail")) {
      Serial.printf("An always failing web hook has been triggered\n");
      return ESP8266WebServer::CLIENT_MUST_STOP;
    }
    return ESP8266WebServer::CLIENT_REQUEST_CAN_CONTINUE;
  });

  server.addHook([](const String&, const String& url, WiFiClient* client, ESP8266WebServer::ContentTypeFunction) {
    if (url.startsWith("/dump")) {
      Serial.printf("The dumper web hook is on the run\n");

      // Here the request is not interpreted, so we cannot for sure
      // swallow the exact amount matching the full request+content,
      // hence the tcp connection cannot be handled anymore by the
      // webserver.
#ifdef STREAMSEND_API
      // we are lucky
      client->sendAll(Serial, 500);
#else
      auto last = millis();
      while ((millis() - last) < 500) {
        char buf[32];
        size_t len = client->read((uint8_t*)buf, sizeof(buf));
        if (len > 0) {
          Serial.printf("(<%d> chars)", (int)len);
          Serial.write(buf, len);
          last = millis();
        }
      }
#endif
      // Two choices: return MUST STOP and webserver will close it
      //                       (we already have the example with '/fail' hook)
      // or                  IS GIVEN and webserver will forget it
      // trying with IS GIVEN and storing it on a dumb WiFiClient.
      // check the client connection: it should not immediately be closed
      // (make another '/dump' one to close the first)
      Serial.printf("\nTelling server to forget this connection\n");
      static WiFiClient forgetme = *client;  // stop previous one if present and transfer client refcounter
      return ESP8266WebServer::CLIENT_IS_GIVEN;
    }
    return ESP8266WebServer::CLIENT_REQUEST_CAN_CONTINUE;
  });

  // Hook examples
  /////////////////////////////////////////////////////////

  server.begin();
  Serial.println("HTTP server started");
}

void loop(void) {
  server.handleClient();
  MDNS.update();
}

The library should have been included in the 8266 core. Did you try selecting another 8266?

Thanks,
I don't know what replacing the 8266 core means.
Please forgive my inexperience in the modern vernacular. I see many terms I'm not familiar with in this foray into cloud programming.

FYI
In trying to parse the error message, it says multiple libraries were found for ESP8266WiFi.h:

Multiple libraries were found for "ESP8266WiFi.h"

Used: /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFi

Not used: /home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/ESP8266WiFi

Using library ESP8266WiFi at version 1.0 in folder: /mnt/create-efs/webide/86/ae/86aed964d643f6ae8e8efcd0e94e6a7c:Bill_H/libraries_v2/ESP8266WiFi

Over the years i've uploaded libraries for projects.
I'm wondering is it using something I uploaded at some point rather than the latest one in the cloud library?

Thanks to Idahowalker, ZX80 and juraj for pushing me in the right direction.
You are awesome!!
As they say, A problem precisely described, is already 1/2 solved (or something like that...)
I deleted my custom library ESP8266WiFi.h...............duh
All is good.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.