If i remove the full path PIO locates and builds the file:
platform run --target clean
...
[az@dell5000 test2]$ cat ./src/main.cpp
#include <Arduino.h>
#include <AWS_IOT.h>
#include <ArduinoJson/ArduinoJson.h>
AWS_IOT honrbull ;
void setup() {
honrbull.connect()
Serial.println("Ta Da");
StaticJsonDocument<200> doc;
doc["hello"] = "world";
}
void loop() {
//noting
}
az@dell5000 test2]$ platformio run
Processing esp32dev (platform: espressif32; 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 1.12.4 > Espressif ESP32 Dev Module
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.200129 (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 28 compatible libraries
Scanning dependencies...
**Dependency Graph**
**|-- <ESP32AwsIotCore> 1.0.0**
Building in release mode
Compiling .pio/build/esp32dev/src/main.cpp.o
Generating partitions .pio/build/esp32dev/partitions.bin
src/main.cpp:7:37: fatal error: ArduinoJson/ArduinoJson.h: No such file or directory
compilation terminated.
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/AWS_IOT.cpp.o
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/aws_iot_jobs_interface.c.o
*** [.pio/build/esp32dev/src/main.cpp.o] Error 1
[az@dell5000 test2]$ ls -l ./lib/
ArduinoJson/ esp32-aws-iot/ README
[az@dell5000 test2]$ ls -l ./lib/ArduinoJson/
total 132
-rw-rw-r-- 1 az az 894 Aug 13 18:30 appveyor.yml
-rw-rw-r-- 1 az az 117 Aug 13 18:30 ArduinoJson.h
-rw-rw-r-- 1 az az 32515 Aug 13 18:30 banner.svg
-rw-rw-r-- 1 az az 33770 Aug 13 18:30 CHANGELOG.md
-rw-rw-r-- 1 az az 430 Aug 13 18:30 CMakeLists.txt
-rw-rw-r-- 1 az az 33 Aug 13 18:30 component.mk
-rw-rw-r-- 1 az az 318 Aug 13 18:30 CONTRIBUTING.md
drwxrwxr-x 12 az az 4096 Aug 13 18:30 examples
drwxrwxr-x 6 az az 4096 Aug 13 18:30 extras
-rw-rw-r-- 1 az az 900 Aug 13 18:30 keywords.txt
-rw-rw-r-- 1 az az 816 Aug 13 18:30 library.json
-rw-rw-r-- 1 az az 669 Aug 13 18:30 library.properties
-rw-rw-r-- 1 az az 1126 Aug 13 18:30 LICENSE.md
-rw-rw-r-- 1 az az 9850 Aug 13 18:30 README.md
drwxrwxr-x 3 az az 4096 Aug 13 18:30 src
-rw-rw-r-- 1 az az 871 Aug 13 18:30 SUPPORT.md
removing the path:
[az@dell5000 test2]$ head ./src/main.cpp
#include <Arduino.h>
#include <AWS_IOT.h>
//#include <ArduinoJson/ArduinoJson.h>
#include <ArduinoJson.h>
AWS_IOT honrbull ;
void setup() {
[az@dell5000 test2]$ platformio run --target clean
Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
-----------------------------------------------------------------------------------------------------------
Removed /home/az/Work/Arduino/MQTT_1/test2/.pio/build/esp32dev/partitions.bin
Removed /home/az/Work/Arduino/MQTT_1/test2/.pio/build/esp32dev/.sconsign37.db.dblite
Removed /home/az/Work/Arduino/MQTT_1/test2/.pio/build/esp32dev/lib30f/esp32-aws-iot/AWS_IOT.cpp.o
Removed /home/az/Work/Arduino/MQTT_1/test2/.pio/build/esp32dev/lib30f/esp32-aws-iot/aws_iot_jobs_interface.c.o
Done cleaning
======================================= [SUCCESS] Took 0.52 seconds =======================================
[az@dell5000 test2]$ platformio run
Processing esp32dev (platform: espressif32; 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 1.12.4 > Espressif ESP32 Dev Module
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.200129 (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 28 compatible libraries
Scanning dependencies...
**Dependency Graph**
**|-- <ESP32AwsIotCore> 1.0.0**
**|-- <ArduinoJson> 6.16.1**
Building in release mode
Compiling .pio/build/esp32dev/src/main.cpp.o
Generating partitions .pio/build/esp32dev/partitions.bin
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/AWS_IOT.cpp.o
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/aws_iot_jobs_interface.c.o
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/aws_iot_jobs_json.c.o
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/aws_iot_jobs_topics.c.o
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/aws_iot_jobs_types.c.o
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/aws_iot_json_utils.c.o
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/aws_iot_mqtt_client.c.o
Compiling .pio/build/esp32dev/lib30f/esp32-aws-iot/aws_iot_mqtt_client_common_internal.c.o
src/main.cpp: In function 'void setup()':
src/main.cpp:12:18: error: no matching function for call to 'AWS_IOT::connect()'
honrbull.connect()
^
In file included from src/main.cpp:3:0:
lib/esp32-aws-iot/src/AWS_IOT.h:39:9: note: candidate: int AWS_IOT::connect(const char*, const char*, const char*, const char*, const char*)
int connect(const char *hostAddress, const char *clientID,
^
lib/esp32-aws-iot/src/AWS_IOT.h:39:9: note: candidate expects 5 arguments, 0 provided
*** [.pio/build/esp32dev/src/main.cpp.o] Error 1
The issue is with CB integration:
in CB when i type ::
#include <ArduinoJ ā CB autocompletes to
the correct path is ./lib/ArduinoJson/ArduinoJson.h"
If i try this example serializeJson() | ArduinoJson 6
StaticJsonDocument<200> doc;
doc["hello"] = "world";
serializeJson(doc, Serial);
the autocomplete does not see āStaticJsonDocumentā:
P.S. I just noticed that in this update i used the āproject/libā as a test case, whereas this thread started as lib_deps issue of CB not autocompleting. Upon repeating the tests, i see no difference in the CB/PIO behavior:
-
CB provides the āfullā path to the H file - e.g. ArduinoJson/ArduinoJson.h, which breaks PIO compile operation
-
CB doesnāt āseeā StaticJsonDocument, though it is specified in ArduinoJson/Document/JsonDocument.hpp. I randomly checked and JsonDocument is also not visible for autocompletion .