ESP-IDF 组件依赖关系,编写自己的组件

参考:ESP32 之 ESP-IDF 教学(十七)——组件依赖_priv_requires_Augtons正(单片机)的博客-CSDN博客

组件依赖关系的声明
依赖声明通过注册组件时传递REQUIRES或PRIV_REQUIRES实现依赖。
例如上文举的例子:组件B要依赖组件A。需要在注册B组件时声明对组件A的依赖

# Component B 的CMakeLists.txt
idf_component_register(
    SRCS            "源文件1.c" "源文件2.cpp" ...
    INCLUDE_DIRS    "头文件夹a" "头文件夹b" ...
    REQUIRES        "组件A" ...
)

注:REQUIRES和PRIV_REQUIRES区别
 
REQUIRES是声明public依赖,可供其他依赖者访问。
PRIV_REQUIRES是声明private依赖,只能被当前组件访问。

3、隐式依赖规则
为避免重复性工作,IDF构建系统会在某些特殊情况下自动依赖组件。

1. 规则一:通用依赖

各组件都会自动依赖一些“通用的”IDF组件,即使这些依赖关系没有被明确声明。这些组件的头文件会一直包含在构建系统中。

通用组件包括:
cxx、newlib、freertos、esp_hw_support、heap、log、lwip、soc、hal、esp_rom、esp_common、esp_system。

通用组件存放位置:E:\1zhc\ESP32\esp-idf--4.45\code\esp-idf\components

在源码存放路径的components  存放着 通用的组件

2. 规则二:main组件

main组件即主程序组件,它比较特别,会默认自动依赖所有其他组件。

所以不需要向main组件传递 REQUIRES 或 PRIV_REQUIRES参数。
idf_component_register(
    SRCS            "WiFiLedThread.c" "其他源文件1.c" "其他源文件2.cpp" ...
    INCLUDE_DIRS    "头文件夹a" "头文件夹b" ...
    REQUIRES        "LEDControl" "WiFiControl"
)
 

3.为组件添加多个个依赖组件

你可能感兴趣的:(单片机)