Platformio.ini lib_deps constantly -> No such file or directory

Hi,

I’m sharing below the configuraiton file as well as the output from the build, which constantly returns No such file or directory, even though the file is there, any idea how to solve it?

platformio.ini :

[env:esp32]
platform  = espressif32@2.0.0
board     = pico32
framework = arduino

build_flags = 
  -D VERSION="0.0.1"
  -D VERBOSE
  ;-D CALIBRATE

monitor_speed = 115200

board_build.partitions = default_ffat.csv

lib_deps =
  arduino-libraries/ArduinoHttpClient@0.4.0
  PubSubClient@2.8

lib_extra_dirs = ${PROJECT_DIR}\..\

Verbose build:

> Executing task: C:\Users\lbisp\.platformio\penv\Scripts\pio.exe run --verbose --environment esp32 <

Processing esp32 (platform: espressif32@2.0.0; board: pico32; framework: arduino; build_flags: -D VERSION="0.0.1", -D VERBOSE; monitor_speed: 115200; board_build.partitions: default_ffat.csv; lib_deps: arduino-libraries/ArduinoHttpClient@0.4.0, PubSubClient@2.8; lib_extra_dirs: ${PROJECT_DIR}\..\)
--------------------------------------------------------------------------------------------------------------------------------

CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/pico32.html
PLATFORM: Espressif 32 (2.0.0) > ESP32 Pico Kit
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (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.10004.201016 (1.0.4)
 - tool-esptoolpy 1.20600.0 (2.6.0)
 - toolchain-xtensa32 2.50200.80 (5.2.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 65 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoHttpClient> 0.4.0 (D:\untrol.io\10. Open Source\iot_plant_watering_sensor_esp\.pio\libdeps\esp32\ArduinoHttpClient)
|-- <PubSubClient> 2.8.0 (D:\untrol.io\10. Open Source\iot_plant_watering_sensor_esp\.pio\libdeps\esp32\PubSubClient)
|-- <FFat> 1.0 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\FFat)
|   |-- <FS> 1.0 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\FS)
|-- <FS> 1.0 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\FS)
|-- <RTClib> 1.12.2 (D:\untrol.io\10. Open Source\RTClib)
|   |-- <Wire> 1.0.1 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
|-- <iot_plant_watering_sensor_esp> (D:\untrol.io\10. Open Source\iot_plant_watering_sensor_esp)
|   |-- <FFat> 1.0 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\FFat)
|   |   |-- <FS> 1.0 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\FS)
|   |-- <FS> 1.0 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\FS)
|   |-- <RTClib> 1.12.2 (D:\untrol.io\10. Open Source\RTClib)
|   |   |-- <Wire> 1.0.1 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
|   |-- <Ticker> 1.1 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\Ticker)
|   |-- <WiFi> 1.0 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\WiFi)
|   |-- <Wire> 1.0.1 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
|-- <Ticker> 1.1 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\Ticker)
|-- <WiFi> 1.0 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\WiFi)
|-- <Wire> 1.0.1 (C:\Users\lbisp\.platformio\packages\framework-arduinoespressif32\libraries\Wire)
Building in release mode
.
.
.
***************************************************************************
* Looking for spArduinoHttpClient.h\. dependency? Check our library registry!
*
* CLI  > platformio lib search "header:ArduinoHttpClient.h"
* Web  > plahttps://platformio.org/lib/search?query=header:ArduinoHttpClient.htf
*
***************************************************************************

:angry:

Works perfectly fine for without the lib_extra_dirs = ${PROJECT_DIR}\..\ directive and a minimal code

#include <Arduino.h>
#include <ArduinoHttpClient.h>

void setup() {}
void loop() {}
$ pio run 
Processing esp32 (platform: espressif32@2.0.0; board: pico32; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/pico32.html
PLATFORM: Espressif 32 (2.0.0) > ESP32 Pico Kit
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (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.10004.201016 (1.0.4) 
 - tool-esptoolpy 1.20600.0 (2.6.0) 
 - toolchain-xtensa32 2.50200.80 (5.2.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Library Manager: Installing arduino-libraries/ArduinoHttpClient @ 0.4.0
Library Manager: ArduinoHttpClient @ 0.4.0 has been installed!
Library Manager: Installing PubSubClient @ 2.8
Library Manager: PubSubClient @ 2.8.0 has been installed!
Found 31 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoHttpClient> 0.4.0
|-- <PubSubClient> 2.8.0
Building in release mode
Compiling .pio/build/esp32/src/main.cpp.o
[...]
Archiving .pio/build/esp32/libFrameworkArduino.a
Indexing .pio/build/esp32/libFrameworkArduino.a
Linking .pio/build/esp32/firmware.elf
Building .pio/build/esp32/firmware.bin
Retrieving maximum program size .pio/build/esp32/firmware.elf
Checking size .pio/build/esp32/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   4.5% (used 14700 bytes from 327680 bytes)
Flash: [==        ]  16.0% (used 209791 bytes from 1310720 bytes)
esptool.py v2.6
======================================================================== [SUCCESS] Took 13.08 seconds ========================================================================

Please recreate a minimal project as I have above and check if you cannot compile that project either.

As you will notice from the build log, other libraries are called, including <RTClib> from my ${PROJECT_DIR}\..\

<RTClib> 1.12.2 (D:\untrol.io\10. Open Source\RTClib)

Yes, but did you try with a minimal example as I’ve shown above?

I suspect the ${PROJECT_DIR}\..\ is a problem because I see it compile your main project file as iot_plant_watering_sensor_esp\main.cpp but the project is also included itself as library in

|-- <iot_plant_watering_sensor_esp> (D:\untrol.io\10. Open Source\iot_plant_watering_sensor_esp)

You may also try the way through

lib_deps =
  arduino-libraries/ArduinoHttpClient@0.4.0
  PubSubClient@2.8
  RTClib=file://D:\untrol.io\10. Open Source\RTClib

Hi,

The minimal example compiles, what puzzles me is that the error did not happen with the other library, PubSub for example.

Thanks for the tip, the following works:

lib_deps =
  arduino-libraries/ArduinoHttpClient@0.4.0
  PubSubClient@2.8
  RTClib=file://D:\untrol.io\10. Open Source\RTClib