使用ESP-IDF找不到nvs_flash.h头文件

本文介绍了解决ESP-IDF开发过程中找不到nvs_flash.h头文件的问题方法。通过在CMakeLists.txt文件中添加特定配置,确保了nvs_flash组件能够被正确引入,从而解决了头文件缺失的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在创建项目过程中,找不到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)

* 正在执行任务: e:\espidf\espressif\tools\ninja\1.12.1\ninja.EXE [1/10] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/mesh_main.c.obj FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/mesh_main.c.obj E:\espidf\espressif\tools\riscv32-esp-elf\esp-14.2.0_20241119\riscv32-esp-elf\bin\riscv32-esp-elf-gcc.exe -DESP_PLATFORM -DIDF_VER=\"v5.4.1\" -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -DUNITY_INCLUDE_CONFIG_H -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -ID:/esp32_C3/internal_communication_client_2/build/config -ID:/esp32_C3/internal_communication_client_2/main -ID:/esp32_C3/internal_communication_client_2/main/include -IE:/espidf/v5.4.1/esp-idf/components/newlib/platform_include -IE:/espidf/v5.4.1/esp-idf/components/freertos/config/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/config/include/freertos -IE:/espidf/v5.4.1/esp-idf/components/freertos/config/riscv/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/FreeRTOS-Kernel/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos -IE:/espidf/v5.4.1/esp-idf/components/freertos/esp_additions/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/include/soc -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/include/soc/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/dma/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/ldo/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/debug_probe/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/port/esp32c3/. -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/port/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/heap/include -IE:/espidf/v5.4.1/esp-idf/components/heap/tlsf -IE:/espidf/v5.4.1/esp-idf/components/log/include -IE:/espidf/v5.4.1/esp-idf/components/soc/include -IE:/espidf/v5.4.1/esp-idf/components/soc/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/soc/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/soc/esp32c3/register -IE:/espidf/v5.4.1/esp-idf/components/hal/platform_port/include -IE:/espidf/v5.4.1/esp-idf/components/hal/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/hal/include -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/include -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/include/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/esp_common/include -IE:/espidf/v5.4.1/esp-idf/components/esp_system/include -IE:/espidf/v5.4.1/esp-idf/components/esp_system/port/soc -IE:/espidf/v5.4.1/esp-idf/components/esp_system/port/include/riscv -IE:/espidf/v5.4.1/esp-idf/components/esp_system/port/include/private -IE:/espidf/v5.4.1/esp-idf/components/riscv/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/include/apps -IE:/espidf/v5.4.1/esp-idf/components/lwip/include/apps/sntp -IE:/espidf/v5.4.1/esp-idf/components/lwip/lwip/src/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/freertos/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/esp32xx/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/esp32xx/include/arch -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/esp32xx/include/sys -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_gpio/include -IE:/espidf/v5.4.1/esp-idf/components/esp_pm/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/port/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/library -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/esp_crt_bundle/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/3rdparty/everest/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m/p256-m -IE:/espidf/v5.4.1/esp-idf/components/esp_app_format/include -IE:/espidf/v5.4.1/esp-idf/components/esp_bootloader_format/include -IE:/espidf/v5.4.1/esp-idf/components/app_update/include -IE:/espidf/v5.4.1/esp-idf/components/bootloader_support/include -IE:/espidf/v5.4.1/esp-idf/components/bootloader_support/bootloader_flash/include -IE:/espidf/v5.4.1/esp-idf/components/esp_partition/include -IE:/espidf/v5.4.1/esp-idf/components/efuse/include -IE:/espidf/v5.4.1/esp-idf/components/efuse/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_mm/include -IE:/espidf/v5.4.1/esp-idf/components/spi_flash/include -IE:/espidf/v5.4.1/esp-idf/components/esp_security/include -IE:/espidf/v5.4.1/esp-idf/components/pthread/include -IE:/espidf/v5.4.1/esp-idf/components/esp_timer/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_gptimer/include -IE:/espidf/v5.4.1/esp-idf/components/esp_ringbuf/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_uart/include -IE:/espidf/v5.4.1/esp-idf/components/vfs/include -IE:/espidf/v5.4.1/esp-idf/components/app_trace/include -IE:/espidf/v5.4.1/esp-idf/components/esp_event/include -IE:/espidf/v5.4.1/esp-idf/components/nvs_flash/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_pcnt/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_spi/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_mcpwm/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_ana_cmpr/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_i2s/include -IE:/espidf/v5.4.1/esp-idf/components/sdmmc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdmmc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdspi/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdio/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_dac/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_rmt/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_tsens/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdm/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_i2c/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_ledc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_parlio/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_usb_serial_jtag/include -IE:/espidf/v5.4.1/esp-idf/components/driver/deprecated -IE:/espidf/v5.4.1/esp-idf/components/driver/i2c/include -IE:/espidf/v5.4.1/esp-idf/components/driver/touch_sensor/include -IE:/espidf/v5.4.1/esp-idf/components/driver/twai/include -IE:/espidf/v5.4.1/esp-idf/components/esp_phy/include -IE:/espidf/v5.4.1/esp-idf/components/esp_phy/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_vfs_console/include -IE:/espidf/v5.4.1/esp-idf/components/esp_netif/include -IE:/espidf/v5.4.1/esp-idf/components/wpa_supplicant/include -IE:/espidf/v5.4.1/esp-idf/components/wpa_supplicant/port/include -IE:/espidf/v5.4.1/esp-idf/components/wpa_supplicant/esp_supplicant/include -IE:/espidf/v5.4.1/esp-idf/components/esp_coex/include -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/include -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/include/local -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/wifi_apps/include -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/wifi_apps/nan_app/include -IE:/espidf/v5.4.1/esp-idf/components/unity/include -IE:/espidf/v5.4.1/esp-idf/components/unity/unity/src -IE:/espidf/v5.4.1/esp-idf/components/cmock/CMock/src -IE:/espidf/v5.4.1/esp-idf/components/console -IE:/espidf/v5.4.1/esp-idf/components/http_parser -IE:/espidf/v5.4.1/esp-idf/components/esp-tls -IE:/espidf/v5.4.1/esp-idf/components/esp-tls/esp-tls-crypto -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/interface -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/deprecated/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_isp/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_cam/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_cam/interface -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_jpeg/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_ppa/include -IE:/espidf/v5.4.1/esp-idf/components/esp_eth/include -IE:/espidf/v5.4.1/esp-idf/components/esp_gdbstub/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hid/include -IE:/espidf/v5.4.1/esp-idf/components/tcp_transport/include -IE:/espidf/v5.4.1/esp-idf/components/esp_http_client/include -IE:/espidf/v5.4.1/esp-idf/components/esp_http_server/include -IE:/espidf/v5.4.1/esp-idf/components/esp_https_ota/include -IE:/espidf/v5.4.1/esp-idf/components/esp_https_server/include -IE:/espidf/v5.4.1/esp-idf/components/esp_psram/include -IE:/espidf/v5.4.1/esp-idf/components/esp_lcd/include -IE:/espidf/v5.4.1/esp-idf/components/esp_lcd/interface -IE:/espidf/v5.4.1/esp-idf/components/protobuf-c/protobuf-c -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/common -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/security -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/transports -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/crypto/srp6a -IE:/espidf/v5.4.1/esp-idf/components/protocomm/proto-c -IE:/espidf/v5.4.1/esp-idf/components/esp_local_ctrl/include -IE:/espidf/v5.4.1/esp-idf/components/espcoredump/include -IE:/espidf/v5.4.1/esp-idf/components/espcoredump/include/port/riscv -IE:/espidf/v5.4.1/esp-idf/components/wear_levelling/include -IE:/espidf/v5.4.1/esp-idf/components/fatfs/diskio -IE:/espidf/v5.4.1/esp-idf/components/fatfs/src -IE:/espidf/v5.4.1/esp-idf/components/fatfs/vfs -IE:/espidf/v5.4.1/esp-idf/components/idf_test/include -IE:/espidf/v5.4.1/esp-idf/components/idf_test/include/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/ieee802154/include -IE:/espidf/v5.4.1/esp-idf/components/json/cJSON -IE:/espidf/v5.4.1/esp-idf/components/mqtt/esp-mqtt/include -IE:/espidf/v5.4.1/esp-idf/components/nvs_sec_provider/include -IE:/espidf/v5.4.1/esp-idf/components/rt/include -IE:/espidf/v5.4.1/esp-idf/components/spiffs/include -IE:/espidf/v5.4.1/esp-idf/components/wifi_provisioning/include -march=rv32imc_zicsr_zifencei -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-error=extra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -Os -freorder-blocks -fmacro-prefix-map=D:/esp32_C3/internal_communication_client_2=. -fmacro-prefix-map=E:/espidf/v5.4.1/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/mesh_main.c.obj -MF esp-idf\main\CMakeFiles\__idf_main.dir\mesh_main.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/mesh_main.c.obj -c D:/esp32_C3/internal_communication_client_2/main/mesh_main.c D:/esp32_C3/internal_communication_client_2/main/mesh_main.c:15:10: fatal error: mdf_common.h: No such file or directory 15 | #include "mdf_common.h" | ^~~~~~~~~~~~~~ compilation terminated. [2/10] Performing build step for 'bootloader' [1/1] C:\Windows\system32\cmd.exe /C "cd /D D:\esp32_C3\internal_communication_client_2\build\bootloader\esp-idf\esptool_py && e:\espidf\espressif\python_env\idf5.4_py3.11_env\Scripts\python.exe E:/espidf/v5.4.1/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x0 D:/esp32_C3/internal_communication_client_2/build/bootloader/bootloader.bin" Bootloader binary size 0x5160 bytes. 0x2ea0 bytes (36%) free. ninja: build stopped: subcommand failed.
06-27
xecuting action: flash Serial port /dev/ttyACM0 Connecting.... Detecting chip type... ESP32-S3 Running ninja in directory /home/jichu/esp32/lvgl_display/build Executing "ninja flash"... [1/1] cd /home/jichu/esp32/lvgl_displa...isplay/build/bootloader/bootloader.bin Bootloader binary size 0x5240 bytes. 0x2dc0 bytes (36%) free. [2/5] Linking CXX executable lvgl_display.elf FAILED: lvgl_display.elf : && /home/jichu/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++ -mlongcalls -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32S3=0 -Wl,--Map=/home/jichu/esp32/lvgl_display/build/lvgl_display.map -Wl,--no-warn-rwx-segments -fno-rtti -fno-lto -Wl,--gc-sections -Wl,--warn-common -T esp32s3.peripherals.ld -T esp32s3.rom.ld -T esp32s3.rom.api.ld -T esp32s3.rom.libgcc.ld -T esp32s3.rom.newlib.ld -T esp32s3.rom.version.ld -T memory.ld -T sections.ld CMakeFiles/lvgl_display.elf.dir/project_elf_src_esp32s3.c.obj -o lvgl_display.elf -L/home/jichu/esp32/esp-idf/components/soc/esp32s3/ld -L/home/jichu/esp32/esp-idf/components/esp_rom/esp32s3/ld -L/home/jichu/esp32/lvgl_display/build/esp-idf/esp_system/ld -L/home/jichu/esp32/esp-idf/components/esp_phy/lib/esp32s3 -L/home/jichu/esp32/esp-idf/components/esp_coex/lib/esp32s3 -L/home/jichu/esp32/esp-idf/components/esp_wifi/lib/esp32s3 -L/home/jichu/esp32/esp-idf/components/bt/controller/lib_esp32c3_family/esp32s3 esp-idf/xtensa/libxtensa.a esp-idf/esp_ringbuf/libesp_ringbuf.a esp-idf/efuse/libefuse.a esp-idf/esp_mm/libesp_mm.a esp-idf/driver/libdriver.a esp-idf/esp_pm/libesp_pm.a esp-idf/mbedtls/libmbedtls.a esp-idf/esp_bootloader_format/libesp_bootloader_format.a esp-idf/esp_app_format/libesp_app_format.a esp-idf/bootloader_support/libbootloader_support.a esp-idf/esp_partition/libesp_partition.a esp-idf/app_update/libapp_update.a esp-idf/spi_flash/libspi_flash.a esp-idf/pthread/libpthread.a esp-idf/esp_system/libesp_system.a esp-idf/esp_rom/libesp_rom.a esp-idf/hal/libhal.a esp-idf/log/liblog.a esp-idf/heap/libheap.a esp-idf/soc/libsoc.a esp-idf/esp_hw_support/libesp_hw_support.a esp-idf/freertos/libfreertos.a esp-idf/newlib/libnewlib.a esp-idf/cxx/libcxx.a esp-idf/esp_common/libesp_common.a esp-idf/esp_timer/libesp_timer.a esp-idf/app_trace/libapp_trace.a esp-idf/esp_event/libesp_event.a esp-idf/nvs_flash/libnvs_flash.a esp-idf/esp_phy/libesp_phy.a esp-idf/vfs/libvfs.a esp-idf/lwip/liblwip.a esp-idf/esp_netif/libesp_netif.a esp-idf/wpa_supplicant/libwpa_supplicant.a esp-idf/esp_coex/libesp_coex.a esp-idf/esp_wifi/libesp_wifi.a esp-idf/bt/libbt.a esp-idf/unity/libunity.a esp-idf/cmock/libcmock.a esp-idf/console/libconsole.a esp-idf/http_parser/libhttp_parser.a esp-idf/esp-tls/libesp-tls.a esp-idf/esp_adc/libesp_adc.a esp-idf/esp_eth/libesp_eth.a esp-idf/esp_gdbstub/libesp_gdbstub.a esp-idf/esp_hid/libesp_hid.a esp-idf/tcp_transport/libtcp_transport.a esp-idf/esp_http_client/libesp_http_client.a esp-idf/esp_http_server/libesp_http_server.a esp-idf/esp_https_ota/libesp_https_ota.a esp-idf/esp_lcd/libesp_lcd.a esp-idf/protobuf-c/libprotobuf-c.a esp-idf/protocomm/libprotocomm.a esp-idf/esp_local_ctrl/libesp_local_ctrl.a esp-idf/espcoredump/libespcoredump.a esp-idf/wear_levelling/libwear_levelling.a esp-idf/sdmmc/libsdmmc.a esp-idf/fatfs/libfatfs.a esp-idf/json/libjson.a esp-idf/mqtt/libmqtt.a esp-idf/nvs_sec_provider/libnvs_sec_provider.a esp-idf/perfmon/libperfmon.a esp-idf/spiffs/libspiffs.a esp-idf/touch_element/libtouch_element.a esp-idf/usb/libusb.a esp-idf/wifi_p
03-14
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MagicKingC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值