在创建项目过程中,找不到nvs_flash.h头文件解决方法:在CMakeList.txt文件中添加 PRIV_REQUIRES nvs_flash,例子如下:
idf_component_register(SRCS "network.c"
INCLUDE_DIRS "include"
PRIV_REQUIRES nvs_flash)
其中关于有个关键变量说明:
REQUIRES 需要包含所有在当前组件的 公共 头文件里 #include 的头文件所在的组件(官方),意思是:假如编译的组件是放到头文件里面的,而且这个头文件又会被其他组件引用到就用这个关键字(个人)
PRIV_REQUIRES 需要包含被当前组件的源文件 #include 的头文件所在的组件。(官方)意思是:只在当前这个组件用到没有放到头文件里面,就用这个关键字(个人)
本来以为ESP-IDF会自动包含所有的组件,结果看到文档手册的之后,就挺这样的。
(ps:官方包含的通用组件:通用组件包括:cxx、newlib、freertos、esp_hw_support、heap、log、lwip、soc、hal、esp_rom、esp_common、esp_system)