Wie man ESP-IDF-Komponentenfehler behebt: #include <driver/...>: No such file or directory

Problem

Beim Kompilieren deines ESP-IDF-Projekts, das eine benutzerdefinierte Komponente enthält, kannst du den folgenden Fehler erhalten:

QuickI2C.cpp
In file included from /home/uli/myproject/components/QuickI2C/QuickI2C/src/QuickI2C.cpp:1:
/home/uli/myproject/components/QuickI2C/QuickI2C/include/QuickI2C.h:21:10: fatal error: driver/i2c.h: No such file or directory
   21 | #include <driver/i2c.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.

Lösung

Editiere die CMakeLists.txt-Datei deiner benutzerdefinierten Komponente und füge die folgende Anweisung innerhalb von idf_component_register hinzu:

component_CMakeLists_snippet.cmake
REQUIRES driver

Beispiel CMakeLists.txt

CMakeLists.txt
idf_component_register(SRCS "QuickI2C/src/QuickI2C.cpp"
                    INCLUDE_DIRS "QuickI2C/include"
                    REQUIRES driver)

Ähnliche Beiträge nach Kategorie: ESP32, ESP-IDF, C/C++