我正在尝试将单独的 SD 卡和 MQTT 代码合并到 ESP-IDF 项目中,以启用通过 MQTT 将数据从 SD 卡发送到云的功能。 SD 卡和 MQTT 代码单独运行时都可以正常工作。但是,当我尝试合并它们时,遇到以下错误:
C:/Users/Admin/Desktop/sdspi/main/wifi.c:2:10: fatal error: esp_wifi.h: No such file or directory
2 | #include "esp_wifi.h"
| ^~~~~~~~~~~~
C:/Users/Admin/Desktop/sdspi/main/mqtt.c:5:10: fatal error: mqtt_client.h: No such file or directory
5 | #include "mqtt_client.h"
| ^~~~~~~~~~~~~~
C:/Users/Admin/Desktop/sdspi/main/sd_card_example_main.c:17:10: fatal error: nvs_flash.h: No such file or directory
17 | #include "nvs_flash.h"
| ^~~~~~~~~~~~~
单独 MQTT 的 CMakeLists.txt。
idf_component_register(SRCS "app_main.c" "mqtt.c" "json.c" "wifi.c" "cJSON.c"
INCLUDE_DIRS ".")
单独 SD_CARD 的 CMakeLists.txt。
set(srcs "sd_card_example_main.c")
idf_component_register(SRCS ${srcs}
INCLUDE_DIRS "."
REQUIRES fatfs sd_card json
WHOLE_ARCHIVE)
合并项目mqtt_ssl的CMakeLists.txt。
set(srcs "sd_card_example_main.c" "wifi.c" "mqtt.c" "cJSON.c" "json.c")
idf_component_register(SRCS ${srcs}
INCLUDE_DIRS "."
REQUIRES fatfs sd_card json
WHOLE_ARCHIVE)
我已将这些头文件添加到我的项目中,但仍然收到这些错误。我可以看到这些头文件的文件夹存在于 ESP-IDF 的组件目录中。 谁能帮我解决这个问题?谢谢!
我已经解决了我的问题,该问题通过更新依赖项产生了完全相同的错误消息:
我使用esp32-wifi-manager,最初来自https://github.com/tonyp7/esp32-wifi-manager,它似乎不再维护,并且与idf 5不兼容。
我将版本更改为https://github.com/huardti/esp32-wifi-manager,现在包含工作了。因此,也许您的依赖项之一导致了问题。