Cannot load header files

I’m new to PlatformIO in VSCode and I’m getting the following error with the following code / configuration:


log / error

Compiling .pio/build/esp32dev/lib9d6/Firebase Arduino Client Library for ESP8266 and ESP32/bearssl/i15_rshift.c.o
Compiling .pio/build/esp32dev/lib9d6/Firebase Arduino Client Library for ESP8266 and ESP32/bearssl/i31_add.c.o
In file included from .pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/Firebase.h:39,
                 from .pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/Firebase.cpp:38:
.pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/FirebaseFS.h:32:10: fatal error: SPIFFS.h: No such file or directory

****************************************************************
* Looking for SPIFFS.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:SPIFFS.h"
* Web  > https://registry.platformio.org/search?q=header:SPIFFS.h
*
****************************************************************

 #include <SPIFFS.h>
          ^~~~~~~~~~
compilation terminated.
Compiling .pio/build/esp32dev/lib9d6/Firebase Arduino Client Library for ESP8266 and ESP32/bearssl/i31_bitlen.c.o
*** [.pio/build/esp32dev/lib9d6/Firebase Arduino Client Library for ESP8266 and ESP32/Firebase.cpp.o] Error 1

main.cpp

#include <Arduino.h>
#include <WiFi.h>
#include <Arduino.h>
#include <WiFi.h>

// Date / Time lib
#include <time.h>
#include <TimeLib.h>

platformio.ini

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps = 
	paulstoffregen/Time@^1.6.1
	arduino-libraries/WiFi@^1.2.7
	mobizt/Firebase Arduino Client Library for ESP8266 and ESP32@^4.3.14

I have tried adding the library manually in the platformio.ini using build_flags = -I /Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src. This works but then I end up with the same issue for the next file FS.h:

/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src/SPIFFS.h:17:10: fatal error: FS.h: No such file or directory

************************************************************
* Looking for FS.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:FS.h"
* Web  > https://registry.platformio.org/search?q=header:FS.h
*
************************************************************

It seems like the installed .platformio/packages/framework-arduinoespressif32 package isn’t in a path or something.

I’m trying to move my project from the Arduino IDE to VSCode which I’m more familiar with. This project now includes only library imports. :slight_smile:

I’m working on Mac OS in case that’s relevant. I have tried uninstalling the PlatformIO extension as well as deleting the ~/.platformio directory and creating a new project from scratch.

Thanks for any help.

Try every lib_ldf_mode setting.

Thanks:

I tried chain and chain+ but got the same result.



I tried off and got the following error:

.pio/libdeps/esp32dev/WiFi/src/utility/spi_drv.cpp:21:10: fatal error: SPI.h: No such file or directory

*************************************************************
* Looking for SPI.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:SPI.h"
* Web  > https://registry.platformio.org/search?q=header:SPI.h
*
*************************************************************

 #include <SPI.h>
          ^~~~~~~
compilation terminated.
*** [.pio/build/esp32dev/lib345/WiFi/utility/spi_drv.cpp.o] Error 1
.pio/libdeps/esp32dev/WiFi/src/utility/wifi_drv.cpp: In static member function 'static uint8_t WiFiDrv::getEncTypeNetowrks(uint8_t)':
.pio/libdeps/esp32dev/WiFi/src/utility/wifi_drv.cpp:451:10: warning: converting to non-pointer type 'uint8_t' {aka 'unsigned char'} from NULL [-Wconversion-null]
   return NULL;
          ^~~~
.pio/libdeps/esp32dev/WiFi/src/utility/wifi_drv.cpp: In static member function 'static int32_t WiFiDrv::getRSSINetoworks(uint8_t)':
.pio/libdeps/esp32dev/WiFi/src/utility/wifi_drv.cpp:476:10: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
   return NULL;
          ^~~~


I tried deep+ and got the following error:

Compiling .pio/build/esp32dev/lib662/SD_MMC/SD_MMC.cpp.o
In file included from /Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src/SD_MMC.cpp:16:
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src/SD_MMC.h:21:10: fatal error: FS.h: No such file or directory

************************************************************
* Looking for FS.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:FS.h"
* Web  > https://registry.platformio.org/search?q=header:FS.h
*
************************************************************

 #include "FS.h"
          ^~~~~~
compilation terminated.
Compiling .pio/build/esp32dev/lib840/SD/SD.cpp.o
*** [.pio/build/esp32dev/lib662/SD_MMC/SD_MMC.cpp.o] Error 1


I tried deep and got the following errors:

Compiling .pio/build/esp32dev/lib9d6/Firebase Arduino Client Library for ESP8266 and ESP32/bearssl/i15_modpow2.c.o
In file included from /Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp:21:
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.h:89:9: error: 'IPv6Address' does not name a type; did you mean 'IPAddress'?
         IPv6Address localIPv6();
         ^~~~~~~~~~~
         IPAddress
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp: In member function 'IPAddress ETHClass::broadcastIP()':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp:501:12: error: 'WiFiGenericClass' has not been declared
     return WiFiGenericClass::calculateBroadcast(IPAddress(ip.gw.addr), IPAddress(ip.netmask.addr));
            ^~~~~~~~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp: In member function 'IPAddress ETHClass::networkID()':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp:510:12: error: 'WiFiGenericClass' has not been declared
     return WiFiGenericClass::calculateNetworkID(IPAddress(ip.gw.addr), IPAddress(ip.netmask.addr));
            ^~~~~~~~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp: In member function 'uint8_t ETHClass::subnetCIDR()':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp:519:12: error: 'WiFiGenericClass' has not been declared
     return WiFiGenericClass::calculateSubnetCIDR(IPAddress(ip.netmask.addr));
            ^~~~~~~~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp: In member function 'bool ETHClass::linkUp()':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp:550:12: error: 'WiFiGenericClass' has not been declared
     return WiFiGenericClass::getStatusBits() & ETH_CONNECTED_BIT;
            ^~~~~~~~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp:550:48: error: 'ETH_CONNECTED_BIT' was not declared in this scope
     return WiFiGenericClass::getStatusBits() & ETH_CONNECTED_BIT;
                                                ^~~~~~~~~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp:550:48: note: suggested alternative: 'WL_CONNECTED'
     return WiFiGenericClass::getStatusBits() & ETH_CONNECTED_BIT;
                                                ^~~~~~~~~~~~~~~~~
                                                WL_CONNECTED
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp: At global scope:
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.cpp:572:1: error: 'IPv6Address' does not name a type; did you mean 'IPAddress'?
 IPv6Address ETHClass::localIPv6()
 ^~~~~~~~~~~
 IPAddress
*** [.pio/build/esp32dev/libf0f/Ethernet/ETH.cpp.o] Error 1
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In constructor 'WiFiClientSecure::WiFiClientSecure()':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:34:5: error: '_connected' was not declared in this scope
     _connected = false;
     ^~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:34:5: note: suggested alternative: 'connected'
     _connected = false;
     ^~~~~~~~~~
     connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In constructor 'WiFiClientSecure::WiFiClientSecure(int)':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:55:5: error: '_connected' was not declared in this scope
     _connected = false;
     ^~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:55:5: note: suggested alternative: 'connected'
     _connected = false;
     ^~~~~~~~~~
     connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In member function 'WiFiClientSecure& WiFiClientSecure::operator=(const WiFiClientSecure&)':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:86:5: error: '_connected' was not declared in this scope
     _connected = other._connected;
     ^~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:86:5: note: suggested alternative: 'connected'
     _connected = other._connected;
     ^~~~~~~~~~
     connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:86:24: error: 'const class WiFiClientSecure' has no member named '_connected'; did you mean 'connected'?
     _connected = other._connected;
                        ^~~~~~~~~~
                        connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In member function 'virtual void WiFiClientSecure::stop()':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:95:9: error: '_connected' was not declared in this scope
         _connected = false;
         ^~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:95:9: note: suggested alternative: 'connected'
         _connected = false;
         ^~~~~~~~~~
         connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In member function 'int WiFiClientSecure::connect(IPAddress, uint16_t, const char*, const char*, const char*, const char*)':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:148:5: error: '_connected' was not declared in this scope
     _connected = true;
     ^~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:148:5: note: suggested alternative: 'connected'
     _connected = true;
     ^~~~~~~~~~
     connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In member function 'int WiFiClientSecure::connect(const char*, uint16_t, const char*, const char*)':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:170:5: error: '_connected' was not declared in this scope
     _connected = true;
     ^~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:170:5: note: suggested alternative: 'connected'
     _connected = true;
     ^~~~~~~~~~
     connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In member function 'virtual size_t WiFiClientSecure::write(const uint8_t*, size_t)':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:199:10: error: '_connected' was not declared in this scope
     if (!_connected) {
          ^~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:199:10: note: suggested alternative: 'connected'
     if (!_connected) {
          ^~~~~~~~~~
          connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In member function 'virtual int WiFiClientSecure::available()':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:243:10: error: '_connected' was not declared in this scope
     if (!_connected) {
          ^~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:243:10: note: suggested alternative: 'connected'
     if (!_connected) {
          ^~~~~~~~~~
          connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In member function 'virtual uint8_t WiFiClientSecure::connected()':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:259:12: error: '_connected' was not declared in this scope
     return _connected;
            ^~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:259:12: note: suggested alternative: 'connected'
     return _connected;
            ^~~~~~~~~~
            connected
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp: In member function 'int WiFiClientSecure::setTimeout(uint32_t)':
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:384:12: error: 'setSocketOption' was not declared in this scope
         if(setSocketOption(SO_RCVTIMEO, (char *)&tv, sizeof(struct timeval)) < 0) {
            ^~~~~~~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:384:12: note: suggested alternative: 'setsockopt'
         if(setSocketOption(SO_RCVTIMEO, (char *)&tv, sizeof(struct timeval)) < 0) {
            ^~~~~~~~~~~~~~~
            setsockopt
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:387:16: error: 'setSocketOption' was not declared in this scope
         return setSocketOption(SO_SNDTIMEO, (char *)&tv, sizeof(struct timeval));
                ^~~~~~~~~~~~~~~
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:387:16: note: suggested alternative: 'setsockopt'
         return setSocketOption(SO_SNDTIMEO, (char *)&tv, sizeof(struct timeval));
                ^~~~~~~~~~~~~~~
                setsockopt
*** [.pio/build/esp32dev/lib3e1/WiFiClientSecure/WiFiClientSecure.cpp.o] Error 1
In file included from .pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/FB_Network.h:27,
                 from .pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/FB_Const.h:47,
                 from .pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/Firebase.h:40,
                 from .pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/Firebase.cpp:38:
/Users/julius/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src/ETH.h:89:9: error: 'IPv6Address' does not name a type; did you mean 'IPAddress'?
         IPv6Address localIPv6();
         ^~~~~~~~~~~
         IPAddress
In file included from .pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/wcs/FB_Clients.h:16,
                 from .pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/Firebase.h:69,
                 from .pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/Firebase.cpp:38:
.pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/./wcs/esp32/FB_TCP_Client.h: In member function 'int FB_WCS::_connect(const char*, uint16_t, long unsigned int)':
.pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/./wcs/esp32/FB_TCP_Client.h:74:5: error: '_connected' was not declared in this scope
     _connected = true;
     ^~~~~~~~~~
.pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/./wcs/esp32/FB_TCP_Client.h:74:5: note: suggested alternative: 'connected'
     _connected = true;
     ^~~~~~~~~~
     connected
.pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/Firebase.cpp: In member function 'void Firebase_ESP_Client::reconnectWiFi(bool)':
.pio/libdeps/esp32dev/Firebase Arduino Client Library for ESP8266 and ESP32/src/Firebase.cpp:341:10: error: 'class WiFiClass' has no member named 'setAutoReconnect'
     WiFi.setAutoReconnect(reconnect);
          ^~~~~~~~~~~~~~~~
*** [.pio/build/esp32dev/lib9d6/Firebase Arduino Client Library for ESP8266 and ESP32/Firebase.cpp.o] Error 1

No, WiFi doesn’t need SPI, you have the wrong deps in the config.

Both of those shouldn’t be eneded at all. time.h is also built-in the toolchain and working.

Thanks for the help @maxgerhardt. :tada:

I got there; the combination was:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
; build_flags = -I ~/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src
lib_ldf_mode = deep
lib_deps = 
	paulstoffregen/Time@^1.6.1
	mobizt/Firebase Arduino Client Library for ESP8266 and ESP32@^4.3.14

`deep+` didn't work and I also couldn't do without the `Time` library.

And neither do chain or chain+?