[案例] 工程编译过程,出现 esp_log.h: No such file or directory

costaud
Posts: 55
Joined: Wed Dec 30, 2015 5:09 pm

[案例] 工程编译过程,出现 esp_log.h: No such file or directory

Postby costaud » Wed Nov 28, 2018 4:45 pm

最近在调试项目的过程中,莫名其妙出现编译问题:

Code: Select all

/Volumes/esp-open-sdk/ESP_IDF/esp-idf/components/app_update/esp_ota_ops.c:38:21 
fatal error: esp_log.h: No such file or directory
从 log 看是 idf 中的 ota 模块,无法找到 esp_log.h 头文件。但是我们并没有修改任何 idf 中的代码。

Code: Select all

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
esp_log.h 头文件在 idf/components/log 下,我们怀疑该模块没有被编译系统编译。
检查项目工程目录后我们发现,在项目文件夹下,我们新建了一个名为 log 的文件夹,用于存放调试过程中的log文件。该文件夹与components下的log模块文件夹同名,造成编译系统不对idf的log模块进行编译。
将该 文件夹/文件 重命名或删除后重新编译项目,能够顺利编译通过。

Code: Select all

ls
CMakeLists.txt	README.md	log		sdkconfig
Makefile	build		main		sdkconfig.old
希望大家注意,项目目录下的文件夹不要与idf模块名称重复。

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

Re: [案例] 工程编译过程,出现 esp_log.h: No such file or directory

Postby ESP_Gargamel » Thu Nov 29, 2018 2:07 am

这是对同名 component 的处理问题,在工程中需要注意,可以参考 IDF Programming Guide 的 build system 章节。
中文:
https://docs.espressif.com/projects/esp ... .html#id11
英文:
https://docs.espressif.com/projects/esp ... -same-name

Who is online

Users browsing this forum: Bing [Bot] and 141 guests