PlatformIO Community

Compile error after updating libraries


#1

After updating one of my libraries, PIO seems to not be able to find them all, even though they are still installed. (at least that is my rudimentary understanding of what is going on… might be totally off base).

How do I fix?

Here is the terminal log from an attempt to compile. This worked fine for weeks up until I updated the Adafruit unified sensor library.

> Executing task in folder Humidifier Control 2.0: C:\Users\teook\.platformio\penv\Scripts\platformio.exe run <

Processing nodemcuv2 (platform: espressif8266; board: nodemcuv2; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html
PLATFORM: Espressif 8266 > NodeMCU 1.0 (ESP-12E Module)
HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 34 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoOTA> 1.0
|   |-- <ESP8266WiFi> 1.0
|   |   |-- <ArduinoBearSSL> 1.2.0
|   |-- <ESP8266mDNS>
|   |   |-- <ESP8266WiFi> 1.0
|   |   |   |-- <ArduinoBearSSL> 1.2.0
|-- <Adafruit Unified Sensor> 1.0.2
|-- <ESP8266WebServer> 1.0
|   |-- <ESP8266WiFi> 1.0
|   |   |-- <ArduinoBearSSL> 1.2.0
|-- <ESP8266WiFi> 1.0
|   |-- <ArduinoBearSSL> 1.2.0
|-- <WebSockets> 2.1.3
|   |-- <Ethernet(esp8266)> 1.0.4
|   |   |-- <SPI> 1.0
|   |-- <ESP8266WiFi> 1.0
|   |   |-- <ArduinoBearSSL> 1.2.0
|   |-- <SPI> 1.0
|   |-- <Hash> 1.0
|-- <DHT sensor library> 1.3.1
|   |-- <Adafruit Unified Sensor> 1.0.2
|-- <WifiManager> 0.14
|   |-- <ESP8266WebServer> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |   |   |-- <ArduinoBearSSL> 1.2.0
|   |-- <ESP8266WiFi> 1.0
|   |   |-- <ArduinoBearSSL> 1.2.0
|   |-- <DNSServer> 1.1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |   |   |-- <ArduinoBearSSL> 1.2.0
|-- <DNSServer> 1.1.0
|   |-- <ESP8266WiFi> 1.0
|   |   |-- <ArduinoBearSSL> 1.2.0
Compiling .pioenvs\nodemcuv2\lib22c\ArduinoBearSSL_ID5571\BearSSLClient.cpp.o
Compiling .pioenvs\nodemcuv2\lib22c\ArduinoBearSSL_ID5571\bearssl\aes_pwr8_ctrcbc.c.o
Compiling .pioenvs\nodemcuv2\lib22c\ArduinoBearSSL_ID5571\bearssl\aes_small_cbcdec.c.o
Compiling .pioenvs\nodemcuv2\lib22c\ArduinoBearSSL_ID5571\bearssl\aes_small_cbcenc.c.o
C:\Users\teook\.platformio\lib\ArduinoBearSSL_ID5571\src\BearSSLClient.cpp:25:27: fatal error: ArduinoECCX08.h: No such file or directory

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

#include <ArduinoECCX08.h>
^
compilation terminated.
*** [.pioenvs\nodemcuv2\lib22c\ArduinoBearSSL_ID5571\BearSSLClient.cpp.o] Error 1
============================================================= [ERROR] Took 8.88 seconds =============================================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

#2

Do you use SSL/TLS? PIO might be wrong when including this library, maybe try writing lib_ignore = ArduinoBearSSL into your platformio.ini.


#3

Near as I can tell, it is trying to look for the ArduinoECCX08.h file in the BearSSL folder and not finding it. If I move that file from the ECCX08.h folder into the Bear folder, the error will go away, or rather, the error will move onto whatever the next file is. I went as far as copying the entire EXXZ08 library into the Bear folder, but then I got an error for Wire.h being missing.


#4

Thanks for the suggestion. Here are the libraries I am calling out in my sketch. I think bearssl is linked by ESP8266WFi.h

My sketch does connect to a https server for data logging.

#include <Arduino.h>               //platformIO
#include <ESP8266WiFi.h>           //wifi
#include <DNSServer.h>             //req by wifiManager
#include <ESP8266WebServer.h>      //req by wifiManager
#include <WiFiManager.h>           //wifi manager
#include <FS.h>                    //SPIFFS file system
#include <ArduinoOTA.h>            //OTA firmware flashing
#include <Adafruit_Sensor.h>       //temp/humidity sensor
#include <DHT.h>                   //temp/humidity sensor
#include <DHT_U.h>                 //temp/humidity sensor
#include <WebSocketsServer.h>      //realtime web control/status

#5

Ok, so BearSSL is actually needed. What library did you update that did not make this work again? Because Adafruit_Sensor.h from https://platformio.org/lib/show/18/Adafruit%20DHT%20Unified/installation and https://platformio.org/lib/show/31/Adafruit%20Unified%20Sensor/installation didn’t receive an update at all recently. When you have identified the library update that breaks it you can reference the last working version in your platformio.ini for a quickfix.

Also what’s the pio --version you’re running?


#6

Core version 3.6.3

Hmm. I’ll double check which library it was. Must have been one of the DHT libraries if it wasn’t the adafruit one. For some reason I’m remembering it having to do with the humidity sensor.

I tried to downgrade library version when this first happened, but I couldn’t figure out how to do it. I see now this webpage and the library options that can be included in the .ini file. Thanks for that.

Seems to me I should be able to get it working now with this knowledge. Thanks a lot for the help!


#7

Well go figure.

I deleted and reinstalled all libraries and now everything compiles fine.