[已解决] vscoed的esp32工程如何添加新文件

SuperManOfHeiLinPu
Posts: 5
Joined: Thu May 13, 2021 5:38 am

[已解决] vscoed的esp32工程如何添加新文件

Postby SuperManOfHeiLinPu » Thu May 13, 2021 1:02 pm

创建了一个hello world模板,但我自己写的.c和.h该怎么添加进来呢?

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: vscoed的esp32工程如何添加新文件

Postby ESP_Gargamel » Fri May 14, 2021 2:27 am

直接放到对应目录下即可。

SuperManOfHeiLinPu
Posts: 5
Joined: Thu May 13, 2021 5:38 am

Re: vscoed的esp32工程如何添加新文件

Postby SuperManOfHeiLinPu » Tue Jun 08, 2021 5:28 am

是放到和main.c的同级目录下么,但我现在想自己新建一个目录不行么?我尝试在最顶层的cmake里加了 add_subdirectory(...),这时候添加的子目录会报找不到esp32相关库的错误,或者我用vscode esp32的插件创建组件也不行。

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: vscoed的esp32工程如何添加新文件

Postby ESP_Gargamel » Tue Jun 08, 2021 8:12 am

请参考 https://docs.espressif.com/projects/esp ... le-project 构建你的目录结构。CMakeLists.txt 也参考该页手册编写。另外,你说用插件创作组件也不行,是遇到了具体什么问题?

SuperManOfHeiLinPu
Posts: 5
Joined: Thu May 13, 2021 5:38 am

Re: vscoed的esp32工程如何添加新文件

Postby SuperManOfHeiLinPu » Tue Jun 08, 2021 11:30 am

感谢回答,我之前用 vscode 创建组件编译时候会找不到头文件,但刚刚我又试了下,没出问题,比较玄学。。。。。

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: vscoed的esp32工程如何添加新文件

Postby ESP_Gargamel » Tue Jun 08, 2021 12:03 pm

路径没包含的话,看 CMakeLists.txt 里 INCLUDE_DIRS 是否有正确设置路径。编译时可以用 idf.py -v build 来看具体的 -I,看是否有问题,从而来改写 INCLUDE_DIRS。

SuperManOfHeiLinPu
Posts: 5
Joined: Thu May 13, 2021 5:38 am

Re: vscoed的esp32工程如何添加新文件

Postby SuperManOfHeiLinPu » Thu Jun 10, 2021 12:36 am

好的,谢谢~

SuperManOfHeiLinPu
Posts: 5
Joined: Thu May 13, 2021 5:38 am

Re: [已解决] vscoed的esp32工程如何添加新文件

Postby SuperManOfHeiLinPu » Tue Jun 22, 2021 3:45 pm

我前几天重装了系统后,现在我复现了使用vscode创建组件编译报错的问题,
使用这个创建名为 HF_Log 的组件
报错.png
报错.png (17.16 KiB) Viewed 10238 times
我在main里 #include"HF_Log.h" 结果就报错了
报错.png
报错.png (17.16 KiB) Viewed 10238 times
麻烦问下这是什么原因呢?
Attachments
创建.png
创建.png (6.82 KiB) Viewed 10238 times

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: [已解决] vscoed的esp32工程如何添加新文件

Postby ESP_Gargamel » Wed Jun 23, 2021 4:14 am

看一下你 HF_Log 组件的目录结构,以及此目录下的 CMakeLists.txt。
当前问题应该是你没有把 HF_Log.h 所在目录注册进来,导致编译时找不到该头文件。
类似这种,你要确保 INCLUDE_DIRS 后包含了HF_Log.h 所在路径

Code: Select all

idf_component_register(SRCS "my_module.c"
                    INCLUDE_DIRS .)

Who is online

Users browsing this forum: No registered users and 143 guests