如何将 ESP-IDF 库添加到外部库
How to add an ESP-IDF library to an external library
我正在尝试将外部库添加到我的项目中。
我的项目结构如下所示:
-project
-- main
--- main.c
--- displayfunctions.c (where i implement my Displayfunctions based on the library)
--- 2 other .c files which got nothing to do with my Display
--- CMakeLists.txt
-- components
--- displaylibrary
---- CMAKELists.txt
---- all displayrelevant librarys pngle.c fontx.c etc..
---- include
----- all corresponding header files pngle.h fontx.h etc.
我在 project/components/displaylibrarys 中的 CMakeLists.txt 文件如下所示:
idf_component_register(SRCS "pngle.c" "decode_jpeg.c" "decode_png.c" "fontx.c" "ili9340.c"
INCLUDE_DIRS "include" )
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
当我尝试编译我的项目时,我收到以下错误消息:
../components/Displaylibrarys/fontx.c:7:10: fatal error: esp_spiffs.h: No such file or directory #include "esp_spiffs.h"
所以显然我的编译器没有 link 我的外部库中包含 esp-idf 库和实际的 esp-idf 库。我也尝试过这种方法
idf_component_register(SRCS "pngle.c" "decode_jpeg.c" "decode_png.c" "fontx.c" "ili9340.c"
INCLUDE_DIRS "include"
REQUIRES esp_spiffs)
但没有结果。我应该如何正确地告诉我的编译器它知道这个库?
ESP-IDF 构建系统适用于组件。您的库是一个组件,ESP-IDF 库的许多部分也是。
作为组件方法的一部分,您的组件需要声明它所依赖的其他组件。这就是 REQUIRES
子句的用途。
除了组件被称为 spiffs
而不是 esp_spiffs
。
之外,您几乎做对了
idf_component_register(SRCS "pngle.c" "decode_jpeg.c" "decode_png.c" "fontx.c" "ili9340.c"
INCLUDE_DIRS "include"
REQUIRES spiffs)
我通常检查 ESP-IDF 组件目录以找出正确的名称。组件和目录名称相同:https://github.com/espressif/esp-idf/tree/master/components
我正在尝试将外部库添加到我的项目中。
我的项目结构如下所示:
-project
-- main
--- main.c
--- displayfunctions.c (where i implement my Displayfunctions based on the library)
--- 2 other .c files which got nothing to do with my Display
--- CMakeLists.txt
-- components
--- displaylibrary
---- CMAKELists.txt
---- all displayrelevant librarys pngle.c fontx.c etc..
---- include
----- all corresponding header files pngle.h fontx.h etc.
我在 project/components/displaylibrarys 中的 CMakeLists.txt 文件如下所示:
idf_component_register(SRCS "pngle.c" "decode_jpeg.c" "decode_png.c" "fontx.c" "ili9340.c"
INCLUDE_DIRS "include" )
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
当我尝试编译我的项目时,我收到以下错误消息:
../components/Displaylibrarys/fontx.c:7:10: fatal error: esp_spiffs.h: No such file or directory #include "esp_spiffs.h"
所以显然我的编译器没有 link 我的外部库中包含 esp-idf 库和实际的 esp-idf 库。我也尝试过这种方法
idf_component_register(SRCS "pngle.c" "decode_jpeg.c" "decode_png.c" "fontx.c" "ili9340.c"
INCLUDE_DIRS "include"
REQUIRES esp_spiffs)
但没有结果。我应该如何正确地告诉我的编译器它知道这个库?
ESP-IDF 构建系统适用于组件。您的库是一个组件,ESP-IDF 库的许多部分也是。
作为组件方法的一部分,您的组件需要声明它所依赖的其他组件。这就是 REQUIRES
子句的用途。
除了组件被称为 spiffs
而不是 esp_spiffs
。
idf_component_register(SRCS "pngle.c" "decode_jpeg.c" "decode_png.c" "fontx.c" "ili9340.c"
INCLUDE_DIRS "include"
REQUIRES spiffs)
我通常检查 ESP-IDF 组件目录以找出正确的名称。组件和目录名称相同:https://github.com/espressif/esp-idf/tree/master/components