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.为组件添加多个个依赖组件

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想在ESP-IDF项目中添加自定义组件,有以下几个步骤: 1. 创建自定义组件文件夹:在ESP-IDF项目的`components`目录下创建一个新的文件夹,用于存放自定义组件的代码和头文件。你可以为该文件夹取一个有意义的名称,以便在项目中使用。 2. 添加组件源代码和头文件:将自定义组件的源代码和头文件放入新创建的文件夹中。确保这些文件是与ESP32芯片兼容的,并且符合ESP-IDF编程规范。 3. 创建组件CMakeLists.txt文件:在自定义组件文件夹中创建一个CMakeLists.txt文件,用于描述组件的配置信息。其中包括组件的源文件、头文件和依赖项等。示例内容如下: ``` idf_component_register(SRCS "component_source_file1.c" "component_source_file2.c" INCLUDE_DIRS "include" REQUIRES dependency1 dependency2 ) ``` 确保将"component_source_file1.c"和"component_source_file2.c"替换为你组件的实际源文件名称,将"include"替换为你组件的头文件所在的文件夹名称,将"dependency1"和"dependency2"替换为你组件所依赖的其他组件的名称。 4. 在主项目中引用自定义组件:在主项目的CMakeLists.txt文件中,添加对自定义组件的引用。示例代码如下: ``` set(EXTRA_COMPONENT_DIRS "path_to_custom_component_folder" "path_to_another_custom_component_folder" ) ``` 将"path_to_custom_component_folder"和"path_to_another_custom_component_folder"替换为你自定义组件所在的文件夹路径。 5. 构建和编译项目:在完成以上步骤后,重新构建和编译ESP-IDF项目。确保自定义组件被成功添加并正确引用。 如此,你就成功地将自定义组件添加到ESP-IDF项目中啦!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值