在esp-idf\examples\wifi\getting_started\mystation工程下,加入一个components目录,里面包含一个drv.c 和 drv.h 并加入了CMakeLists.txt和component.mk,但是编译时总是提示错误:error: drv.h: No such file or directory. 我少了什么步骤没做吗?
CMakeLists.txt内容:idf_component_register(SRCS "user.c"
INCLUDE_DIRS .)
component.mk内容:COMPONENT_ADD_INCLUDEDIRS := .
怎么在esp32的idf里面加入自己的 .c .h文件?
Moderator: ESP_Bob
-
- Posts: 19
- Joined: Mon Aug 24, 2020 8:38 am
Re: 怎么在esp32的idf里面加入自己的 .c .h文件?
我也遇到了这个问题,后来打开了esp-idf\components\log看了一下,发现官方的组件需要三个文件CMakeLists.txt、component.mk、Kconfig,只有两个是不行的。
在Kconfig文件中代码如下
menu "MY_COMP"
config MY_COMP_ENABLE
bool "Enable my_comp"
default "y"
endmenu
在Kconfig文件中代码如下
menu "MY_COMP"
config MY_COMP_ENABLE
bool "Enable my_comp"
default "y"
endmenu
-
- Posts: 290
- Joined: Wed Sep 05, 2018 6:23 am
Re: 怎么在esp32的idf里面加入自己的 .c .h文件?
在example中加入自己的component,可以参考这个项目结构https://github.com/espressif/esp-idf/tree/master/examples/peripherals/rmt/ir_protocols
-
- Posts: 52
- Joined: Wed Sep 23, 2020 12:19 pm
Re: 怎么在esp32的idf里面加入自己的 .c .h文件?
在example中加入自己的component,如果仅是简单的.c .h文件,可以通过添加component.mk文件来指定项目要使用到的组件。如果组件里的文件较多,建议添加include、src文件夹来区分.h 和 .c文件,当然还是需要component.mk文件进行配置。如果使用基于CMake的构建系统,这时就要额外添加一个CMakLists.txt(基于CMake)来链接组件中的文件。
另外,Kconfig不是组件中必须的,每个组件都可以包含一个 Kconfig 文件,和 component.mk 放在同一个目录下。Kconfig 中包含此组件在 make menuconfig 时要展示的配置规则的设置。运行 menuconfig 时,可以在 Component Settings 菜单栏下找到这些设置。创建一个组件的 Kconfig 文件,最简单的方法就是使用 ESP-IDF 中现有的 Kconfig 文件作为模板,在这基础上进行修改。
具体可参考:https://docs.espressif.com/projects/esp ... ht=kconfig#
另外,Kconfig不是组件中必须的,每个组件都可以包含一个 Kconfig 文件,和 component.mk 放在同一个目录下。Kconfig 中包含此组件在 make menuconfig 时要展示的配置规则的设置。运行 menuconfig 时,可以在 Component Settings 菜单栏下找到这些设置。创建一个组件的 Kconfig 文件,最简单的方法就是使用 ESP-IDF 中现有的 Kconfig 文件作为模板,在这基础上进行修改。
具体可参考:https://docs.espressif.com/projects/esp ... ht=kconfig#
Who is online
Users browsing this forum: No registered users and 21 guests