Compiling breaks by unused parts of a library

I’ve been having trouble compiling for a while. Code that used to always compile without any problems now breaks because files were not found. But these are files from unused parts of the library that shouldn’t actually be compiled.

[ [env:az-delivery-devkit-v4]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduino
lib_deps =
adafruit/Adafruit BNO055@^1.5.3
adafruit/Adafruit Unified Sensor@^1.1.5

Processing az-delivery-devkit-v4 (platform: espressif32; board: az-delivery-devkit-v4; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION:
PLATFORM: Espressif 32 (3.5.0) > AZ-Delivery ESP-32 Dev Kit C V4
HARDWARE: ESP32 240MHz, 520KB RAM, 16MB 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.10006.210326 (1.0.6)
  • tool-esptoolpy 1.30100.210531 (3.1.0)
  • toolchain-xtensa32 2.50200.97 (5.2.0)
    LDF: Library Dependency Finder →
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 31 compatible libraries
    Scanning dependencies…
    Dependency Graph
    |-- 1.5.3
    | |-- 1.11.6
    | | |-- 1.0.1
    | |-- 1.0.1
    | |-- 1.1.5
    |-- 1.1.5
    |-- 1.0.3
    |-- 1.0.1
    Building in release mode
    Compiling .pio/build/az-delivery-devkit-v4/src/main.cpp.o
    Generating partitions .pio/build/az-delivery-devkit-v4/partitions.bin
    Compiling .pio/build/az-delivery-devkit-v4/libd2e/Wire/Wire.cpp.o
    Compiling .pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_BusIO_Register.cpp.o
    Compiling .pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_I2CDevice.cpp.o
    Compiling .pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_SPIDevice.cpp.o
    In file included from .pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_BusIO_Register.h:10:0,
    from .pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_BusIO_Register.cpp:1:
    .pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_SPIDevice.h:9:17: 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 > PlatformIO Registry

compilation terminated.
Compiling .pio/build/az-delivery-devkit-v4/lib45f/Adafruit Unified Sensor/Adafruit_Sensor.cpp.o
In file included from .pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_SPIDevice.cpp:1:0:
.pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_SPIDevice.h:9:17: 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 >

compilation terminated.
Compiling .pio/build/az-delivery-devkit-v4/lib09c/Adafruit BNO055/Adafruit_BNO055.cpp.o
*** [.pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_BusIO_Register.cpp.o] Error 1
*** [.pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_SPIDevice.cpp.o] Error 1
======================================================= [FAILED] Took 2.50 seconds =======================================================
Der Terminalprozess “platformio ‘run’” wurde mit folgendem Exitcode beendet: 1.

Das Terminal wird von Aufgaben wiederverwendet, drücken Sie zum Schließen eine beliebige Taste.

Executing task in folder TestBNO: platformio run <

Processing az-delivery-devkit-v4 (platform: espressif32; board: az-delivery-devkit-v4; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION:
PLATFORM: Espressif 32 (3.5.0) > AZ-Delivery ESP-32 Dev Kit C V4
HARDWARE: ESP32 240MHz, 520KB RAM, 16MB 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.10006.210326 (1.0.6)
  • tool-esptoolpy 1.30100.210531 (3.1.0)
  • toolchain-xtensa32 2.50200.97 (5.2.0)
    LDF: Library Dependency Finder →
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 31 compatible libraries
    Scanning dependencies…
    Dependency Graph
    |-- 1.5.3
    | |-- 1.11.6
    | | |-- 1.0.1
    | |-- 1.0.1
    | |-- 1.1.5
    |-- 1.1.5
    |-- 1.0.3
    |-- 1.0.1
    Building in release mode
    Compiling .pio/build/az-delivery-devkit-v4/src/main.cpp.o
    Generating partitions .pio/build/az-delivery-devkit-v4/partitions.bin
    Compiling .pio/build/az-delivery-devkit-v4/libd2e/Wire/Wire.cpp.o
    Compiling .pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_BusIO_Register.cpp.o
    Compiling .pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_I2CDevice.cpp.o
    Compiling .pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_SPIDevice.cpp.o
    In file included from .pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_BusIO_Register.h:10:0,
    from .pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_BusIO_Register.cpp:1:
    .pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_SPIDevice.h:9:17: 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 >

compilation terminated.
Compiling .pio/build/az-delivery-devkit-v4/lib45f/Adafruit Unified Sensor/Adafruit_Sensor.cpp.o
In file included from .pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_SPIDevice.cpp:1:0:
.pio/libdeps/az-delivery-devkit-v4/Adafruit BusIO/Adafruit_SPIDevice.h:9:17: 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 > PlatformIO Registry

compilation terminated.
Compiling .pio/build/az-delivery-devkit-v4/lib09c/Adafruit BNO055/Adafruit_BNO055.cpp.o
*** [.pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_BusIO_Register.cpp.o] Error 1
*** [.pio/build/az-delivery-devkit-v4/lib997/Adafruit BusIO/Adafruit_SPIDevice.cpp.o] Error 1
======================================================= [FAILED] Took 2.55 seconds =======================================================
Der Terminalprozess “platformio ‘run’” wurde mit folgendem Exitcode beendet: 1.

PlatformIO has a quirk where if you don’t include the library declared in lib_deps it will not correctly detect its sub-dependencies but still add the library to the build, leading to compilation errors. Place a at least a #include <Adafruit_SPIDevice.h> in your code.

1 Like

Perfect. Thats a work arround. 1 or 2 Years ago it works without. Will that fixed in a later version?

I’ve actually never seen a different behavior :confused:.

Can you file an issue at Issues · platformio/platformio-core · GitHub?

1 Like

Ok I did, thanks a lot for Your great help again!