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

sunny913765809
Posts: 1
Joined: Wed Jun 10, 2020 8:37 am

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

Postby sunny913765809 » Wed Jun 10, 2020 8:55 am

在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 := .

Maple_Leaf
Posts: 16
Joined: Mon Aug 24, 2020 8:38 am

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

Postby Maple_Leaf » Wed Aug 26, 2020 1:31 am

我也遇到了这个问题,后来打开了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 1496 times

ESP_morris
Posts: 103
Joined: Wed Sep 05, 2018 6:23 am

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

Postby ESP_morris » Tue Sep 01, 2020 3:06 am

在example中加入自己的component,可以参考这个项目结构https://github.com/espressif/esp-idf/tree/master/examples/peripherals/rmt/ir_protocols

tiansenwen
Posts: 3
Joined: Wed Sep 23, 2020 12:19 pm

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

Postby tiansenwen » Thu Sep 24, 2020 2:37 am

在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#

Who is online

Users browsing this forum: No registered users and 1 guest