Cannot open source file "WifiClientSecure.h"

I have a piece of code in VSCode using the Platform IO extension. It is being copied straight from the Arduino IDE where it worked.

#include <WiFi.h>
#include <WiFiClientSecure.h>

WiFiClientSecure wifiClient = WiFiClientSecure();

void setup()
{
  Serial.begin(115200);
}
void loop()
{
  delay(1000);
}

This code does not compile; the error shown is:

src/main.cpp:2:10: fatal error: WiFiClientSecure.h: No such file or directory

The platformio.ini contents are:

[env:esp32dev]
board = esp32dev
platform = https://github.com/Jason2866/platform-espressif32.git#Arduino/IDF5
framework = arduino

Is there a way to make the code above compile (while keeping the same platform.io)?

This should work normally, the Arduino-ESP32 3.x core has just renamed WiFiClientSecure.h to NetworkClientSecure.h (source), but, it still provides the old header for compatibility.

I would advise to just delete C:\Users\<user>\.platformio and restart VSCode to get a fresh copy of everything.

That did not work.
i.e. removing ~/.platformio and restarting VSCode yielded the same error
(I also tried using the new name NetworkClientSecure.h ; same result)

And when you set platform = espressif32?

Same error is shown when setting platform = espressif32

My bad, platform = espressif32@6.7.0. (That would use Arduino-ESP 2.0.16)

1 Like

espressif32@6.7.0 does work

Thanks

Just keep in mind that this will use the older Arduino-ESP 2.x core, not 3.x. I’m not sure why platform = https://github.com/Jason2866/platform-espressif32.git#Arduino/IDF5 would not have that library… it should.

If you want to use Arduino Core 3.0.3 give pioarduino a try:

[env:esp32dev]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.03/platform-espressif32.zip
board = esp32dev
framework = arduino

The compilation result of your main.cpp::

Processing esp32dev (platform: https://github.com/pioarduino/platform-espressif32/releases/download/51.03.03/platform-espressif32.zip; board: esp32dev; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (51.3.3) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: 
 - framework-arduinoespressif32 @ 3.0.3 
 - framework-arduinoespressif32-libs @ 5.1.0+sha.dc859c1e67 
 - tool-esptoolpy @ 4.7.5 
 - tool-mklittlefs @ 3.2.0 
 - tool-riscv32-esp-elf-gdb @ 11.2.0+20220823 
 - tool-xtensa-esp-elf-gdb @ 11.2.0+20230208 
 - toolchain-xtensa-esp32 @ 12.2.0+20230208
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 39 compatible libraries
Scanning dependencies...
Dependency Graph
|-- WiFi @ 3.0.3
|-- NetworkClientSecure @ 3.0.3
Building in release mode
Compiling .pio\build\esp32dev\src\main.cpp.o
Building .pio\build\esp32dev\bootloader.bin
Generating partitions .pio\build\esp32dev\partitions.bin
esptool.py v4.7.5
Creating esp32 image...
Merged 1 ELF section
Successfully created esp32 image.
Compiling .pio\build\esp32dev\lib6bf\Network\NetworkClient.cpp.o
Compiling .pio\build\esp32dev\lib6bf\Network\NetworkEvents.cpp.o
Compiling .pio\build\esp32dev\lib6bf\Network\NetworkInterface.cpp.o
Compiling .pio\build\esp32dev\lib6bf\Network\NetworkManager.cpp.o
Compiling .pio\build\esp32dev\lib6bf\Network\NetworkServer.cpp.o
Compiling .pio\build\esp32dev\lib6bf\Network\NetworkUdp.cpp.o
Compiling .pio\build\esp32dev\lib0f6\WiFi\AP.cpp.o
Compiling .pio\build\esp32dev\lib0f6\WiFi\STA.cpp.o
Compiling .pio\build\esp32dev\lib0f6\WiFi\WiFi.cpp.o
Compiling .pio\build\esp32dev\lib0f6\WiFi\WiFiAP.cpp.o
Compiling .pio\build\esp32dev\lib0f6\WiFi\WiFiGeneric.cpp.o
Compiling .pio\build\esp32dev\lib0f6\WiFi\WiFiMulti.cpp.o
Compiling .pio\build\esp32dev\lib0f6\WiFi\WiFiSTA.cpp.o
Compiling .pio\build\esp32dev\lib0f6\WiFi\WiFiScan.cpp.o
Compiling .pio\build\esp32dev\libc51\NetworkClientSecure\NetworkClientSecure.cpp.o
Compiling .pio\build\esp32dev\libc51\NetworkClientSecure\ssl_client.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\Esp.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\FirmwareMSC.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\FunctionalInterrupt.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\HEXBuilder.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\HWCDC.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\HardwareSerial.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\IPAddress.cpp.o
Archiving .pio\build\esp32dev\lib6bf\libNetwork.a
Indexing .pio\build\esp32dev\lib6bf\libNetwork.a
Compiling .pio\build\esp32dev\FrameworkArduino\MD5Builder.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\MacAddress.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\Print.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\SHA1Builder.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\Stream.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\StreamString.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\Tone.cpp.o
Archiving .pio\build\esp32dev\lib0f6\libWiFi.a
Compiling .pio\build\esp32dev\FrameworkArduino\USB.cpp.o
Indexing .pio\build\esp32dev\lib0f6\libWiFi.a
Compiling .pio\build\esp32dev\FrameworkArduino\USBCDC.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\USBMSC.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\WString.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\base64.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\cbuf.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\chip-debug-report.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-adc.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-bt.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-cpu.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-dac.c.o
Archiving .pio\build\esp32dev\libc51\libNetworkClientSecure.a
Indexing .pio\build\esp32dev\libc51\libNetworkClientSecure.a
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-gpio.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-i2c-slave.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-i2c.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-ledc.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-matrix.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-misc.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-periman.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-psram.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-rgb-led.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-rmt.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-sigmadelta.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-spi.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-time.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-timer.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-tinyusb.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-touch.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-uart.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\firmware_msc_fat.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\libb64\cdecode.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\libb64\cencode.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\main.cpp.o
Compiling .pio\build\esp32dev\FrameworkArduino\stdlib_noniso.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\esp32dev\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\esp32dev\libFrameworkArduino.a
Indexing .pio\build\esp32dev\libFrameworkArduino.a
Linking .pio\build\esp32dev\firmware.elf
Retrieving maximum program size .pio\build\esp32dev\firmware.elf
Checking size .pio\build\esp32dev\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=         ]   7.5% (used 24608 bytes from 327680 bytes)
Flash: [====      ]  44.6% (used 584105 bytes from 1310720 bytes)
Building .pio\build\esp32dev\firmware.bin
esptool.py v4.7.5
Creating esp32 image...
Merged 2 ELF sections
Successfully created esp32 image.
1 Like

Let’s hope that the Espressif politics side of this issue is quickly resolved and we just get a regular espressif32 platform update to core 3.x. There are at least 3 different ways / platform forks now that one could use to get core 3.x, it’s really getting out of hand.

1 Like