Page 1 of 1

怎么在esp32的idf里面加入自己的 .c .h文件?

Posted: Wed Jun 10, 2020 8:55 am
by sunny913765809
在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 := .

Re: 怎么在esp32的idf里面加入自己的 .c .h文件?

Posted: Wed Aug 26, 2020 1:31 am
by Maple_Leaf
我也遇到了这个问题,后来打开了esp-idf\components\log看了一下,发现官方的组件需要三个文件CMakeLists.txt、component.mk、Kconfig,只有两个是不行的。

在Kconfig文件中代码如下
menu "MY_COMP"
config MY_COMP_ENABLE
bool "Enable my_comp"
default "y"
endmenu
092102.jpg
log目录下的文件
092102.jpg (26.28 KiB) Viewed 14446 times

Re: 怎么在esp32的idf里面加入自己的 .c .h文件?

Posted: Tue Sep 01, 2020 3:06 am
by ESP_morris
在example中加入自己的component,可以参考这个项目结构https://github.com/espressif/esp-idf/tree/master/examples/peripherals/rmt/ir_protocols

Re: 怎么在esp32的idf里面加入自己的 .c .h文件?

Posted: Thu Sep 24, 2020 2:37 am
by ESP_TianSW
在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#