espressif / esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Apache License 2.0
13.91k stars 7.33k forks source link

ESP-IDF ESP32s3 Project head driver/rmt_tx.h not found (IDFGH-14173) #14974

Open emofalling opened 1 day ago

emofalling commented 1 day ago

Answers checklist.

IDF version.

v5.2.2

Operating System used.

Windows

How did you build your project?

Command line with CMake

If you are using Windows, please specify command line type.

PowerShell

What is the expected behavior?

The cmake can find head file "driver/rmt_tx.h", then make my project successfully.

What is the actual behavior?

The cmake can't find head file "driver/rmt_tx.h", and throwing an error:

In file included from I:/Projects/esp32-s3zhukongyaokongche/fasheduan/main/drivers/ws2812.c:1:
I:/Projects/esp32-s3zhukongyaokongche/fasheduan/main/drivers/ws2812.h:7:10: fatal error: driver/rmt_tx.h: No such file or directory
    7 | #include "driver/rmt_tx.h"
      |          ^~~~~~~~~~~~~~~~~

but in the same project on esp32, cmake can find this head file.

Steps to reproduce.

  1. I copy the drivers/ws2812.c from other project(esp32), and copy to this project(esp32s3)
  2. change CMakeLists.txt to:
    
    idf_component_register(SRCS "main.c" "drivers/ws2812.c"
                       INCLUDE_DIRS "."
                       #REQUIRES 
                       PRIV_REQUIRES nvs_flash esp_wifi)
3. then click:
![image](https://github.com/user-attachments/assets/71e64f9d-ee9c-4ecf-b623-2da1c195c651)
4. throw this error.

### Build or installation Logs.

```plain
[0/1] Re-running CMake...-- ccache will be used for faster recompilation
-- git rev-parse returned 'fatal: not a git repository (or any of the parent directories): .git'
-- Could not use 'git describe' to determine PROJECT_VER.
-- Building ESP-IDF components for target esp32s3
-- Project sdkconfig file I:/Projects/esp32-s3zhukongyaokongche/fasheduan/sdkconfig
-- Compiler supported targets: xtensa-esp-elf
-- App "fasheduan" version: 1
-- Adding linker script I:/Projects/esp32-s3zhukongyaokongche/fasheduan/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script I:/Projects/esp32-s3zhukongyaokongche/fasheduan/build/esp-idf/esp_system/ld/sections.ld.in
-- Adding linker script I:/ESP-IDF/v5.2.2/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ld
-- Adding linker script I:/ESP-IDF/v5.2.2/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.api.ld
-- Adding linker script I:/ESP-IDF/v5.2.2/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.libgcc.ld
-- Adding linker script I:/ESP-IDF/v5.2.2/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib.ld
-- Adding linker script I:/ESP-IDF/v5.2.2/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.version.ld
-- Adding linker script I:/ESP-IDF/v5.2.2/esp-idf/components/soc/esp32s3/ld/esp32s3.peripherals.ld
-- Components: app_trace app_update bootloader bootloader_support bt cmock console cxx driver efuse esp-tls esp_adc esp_app_format esp_bootloader_format esp_coex esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_lcd esp_local_ctrl esp_mm esp_netif esp_netif_stack esp_partition esp_phy esp_pm esp_psram esp_ringbuf esp_rom esp_system esp_timer esp_wifi espcoredump esptool_py fatfs freertos hal heap http_parser idf_test ieee802154 json log lwip main mbedtls mqtt newlib nvs_flash nvs_sec_provider openthread partition_table perfmon protobuf-c protocomm pthread sdmmc soc spi_flash spiffs tcp_transport touch_element ulp unity usb vfs wear_levelling wifi_provisioning wpa_supplicant xtensa
-- Component paths: I:/ESP-IDF/v5.2.2/esp-idf/components/app_trace I:/ESP-IDF/v5.2.2/esp-idf/components/app_update I:/ESP-IDF/v5.2.2/esp-idf/components/bootloader I:/ESP-IDF/v5.2.2/esp-idf/components/bootloader_support I:/ESP-IDF/v5.2.2/esp-idf/components/bt I:/ESP-IDF/v5.2.2/esp-idf/components/cmock I:/ESP-IDF/v5.2.2/esp-idf/components/console I:/ESP-IDF/v5.2.2/esp-idf/components/cxx I:/ESP-IDF/v5.2.2/esp-idf/components/driver I:/ESP-IDF/v5.2.2/esp-idf/components/efuse I:/ESP-IDF/v5.2.2/esp-idf/components/esp-tls I:/ESP-IDF/v5.2.2/esp-idf/components/esp_adc I:/ESP-IDF/v5.2.2/esp-idf/components/esp_app_format I:/ESP-IDF/v5.2.2/esp-idf/components/esp_bootloader_format I:/ESP-IDF/v5.2.2/esp-idf/components/esp_coex I:/ESP-IDF/v5.2.2/esp-idf/components/esp_common I:/ESP-IDF/v5.2.2/esp-idf/components/esp_eth I:/ESP-IDF/v5.2.2/esp-idf/components/esp_event I:/ESP-IDF/v5.2.2/esp-idf/components/esp_gdbstub I:/ESP-IDF/v5.2.2/esp-idf/components/esp_hid I:/ESP-IDF/v5.2.2/esp-idf/components/esp_http_client I:/ESP-IDF/v5.2.2/esp-idf/components/esp_http_server I:/ESP-IDF/v5.2.2/esp-idf/components/esp_https_ota I:/ESP-IDF/v5.2.2/esp-idf/components/esp_https_server I:/ESP-IDF/v5.2.2/esp-idf/components/esp_hw_support I:/ESP-IDF/v5.2.2/esp-idf/components/esp_lcd I:/ESP-IDF/v5.2.2/esp-idf/components/esp_local_ctrl 
I:/ESP-IDF/v5.2.2/esp-idf/components/esp_mm I:/ESP-IDF/v5.2.2/esp-idf/components/esp_netif I:/ESP-IDF/v5.2.2/esp-idf/components/esp_netif_stack I:/ESP-IDF/v5.2.2/esp-idf/components/esp_partition I:/ESP-IDF/v5.2.2/esp-idf/components/esp_phy I:/ESP-IDF/v5.2.2/esp-idf/components/esp_pm I:/ESP-IDF/v5.2.2/esp-idf/components/esp_psram I:/ESP-IDF/v5.2.2/esp-idf/components/esp_ringbuf I:/ESP-IDF/v5.2.2/esp-idf/components/esp_rom I:/ESP-IDF/v5.2.2/esp-idf/components/esp_system I:/ESP-IDF/v5.2.2/esp-idf/components/esp_timer I:/ESP-IDF/v5.2.2/esp-idf/components/esp_wifi I:/ESP-IDF/v5.2.2/esp-idf/components/espcoredump I:/ESP-IDF/v5.2.2/esp-idf/components/esptool_py I:/ESP-IDF/v5.2.2/esp-idf/components/fatfs I:/ESP-IDF/v5.2.2/esp-idf/components/freertos 
I:/ESP-IDF/v5.2.2/esp-idf/components/hal I:/ESP-IDF/v5.2.2/esp-idf/components/heap I:/ESP-IDF/v5.2.2/esp-idf/components/http_parser I:/ESP-IDF/v5.2.2/esp-idf/components/idf_test I:/ESP-IDF/v5.2.2/esp-idf/components/ieee802154 I:/ESP-IDF/v5.2.2/esp-idf/components/json I:/ESP-IDF/v5.2.2/esp-idf/components/log I:/ESP-IDF/v5.2.2/esp-idf/components/lwip I:/Projects/esp32-s3zhukongyaokongche/fasheduan/main I:/ESP-IDF/v5.2.2/esp-idf/components/mbedtls I:/ESP-IDF/v5.2.2/esp-idf/components/mqtt I:/ESP-IDF/v5.2.2/esp-idf/components/newlib I:/ESP-IDF/v5.2.2/esp-idf/components/nvs_flash I:/ESP-IDF/v5.2.2/esp-idf/components/nvs_sec_provider I:/ESP-IDF/v5.2.2/esp-idf/components/openthread I:/ESP-IDF/v5.2.2/esp-idf/components/partition_table I:/ESP-IDF/v5.2.2/esp-idf/components/perfmon I:/ESP-IDF/v5.2.2/esp-idf/components/protobuf-c I:/ESP-IDF/v5.2.2/esp-idf/components/protocomm I:/ESP-IDF/v5.2.2/esp-idf/components/pthread I:/ESP-IDF/v5.2.2/esp-idf/components/sdmmc I:/ESP-IDF/v5.2.2/esp-idf/components/soc I:/ESP-IDF/v5.2.2/esp-idf/components/spi_flash I:/ESP-IDF/v5.2.2/esp-idf/components/spiffs I:/ESP-IDF/v5.2.2/esp-idf/components/tcp_transport I:/ESP-IDF/v5.2.2/esp-idf/components/touch_element I:/ESP-IDF/v5.2.2/esp-idf/components/ulp I:/ESP-IDF/v5.2.2/esp-idf/components/unity I:/ESP-IDF/v5.2.2/esp-idf/components/usb I:/ESP-IDF/v5.2.2/esp-idf/components/vfs I:/ESP-IDF/v5.2.2/esp-idf/components/wear_levelling I:/ESP-IDF/v5.2.2/esp-idf/components/wifi_provisioning I:/ESP-IDF/v5.2.2/esp-idf/components/wpa_supplicant I:/ESP-IDF/v5.2.2/esp-idf/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: I:/Projects/esp32-s3zhukongyaokongche/fasheduan/build

[1/9] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/drivers/ws2812.c.obj
FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/drivers/ws2812.c.obj 
ccache I:\ESP-IDF\.espressif\tools\xtensa-esp-elf\esp-13.2.0_20230928\xtensa-esp-elf\bin\xtensa-esp32s3-elf-gcc.exe -DESP_PLATFORM -DIDF_VER=\"v5.2.2-1-gbdcfabac2d-dirty\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -II:/Projects/esp32-s3zhukongyaokongche/fasheduan/build/config -II:/Projects/esp32-s3zhukongyaokongche/fasheduan/main -II:/ESP-IDF/v5.2.2/esp-idf/components/newlib/platform_include -II:/ESP-IDF/v5.2.2/esp-idf/components/freertos/config/include -II:/ESP-IDF/v5.2.2/esp-idf/components/freertos/config/include/freertos -II:/ESP-IDF/v5.2.2/esp-idf/components/freertos/config/xtensa/include -II:/ESP-IDF/v5.2.2/esp-idf/components/freertos/FreeRTOS-Kernel/include -II:/ESP-IDF/v5.2.2/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -II:/ESP-IDF/v5.2.2/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos -II:/ESP-IDF/v5.2.2/esp-idf/components/freertos/esp_additions/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_hw_support/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_hw_support/include/soc -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_hw_support/include/soc/esp32s3 -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_hw_support/port/esp32s3/. -II:/ESP-IDF/v5.2.2/esp-idf/components/heap/include -II:/ESP-IDF/v5.2.2/esp-idf/components/log/include -II:/ESP-IDF/v5.2.2/esp-idf/components/soc/include -II:/ESP-IDF/v5.2.2/esp-idf/components/soc/esp32s3 -II:/ESP-IDF/v5.2.2/esp-idf/components/soc/esp32s3/include -II:/ESP-IDF/v5.2.2/esp-idf/components/hal/platform_port/include -II:/ESP-IDF/v5.2.2/esp-idf/components/hal/esp32s3/include -II:/ESP-IDF/v5.2.2/esp-idf/components/hal/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_rom/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_rom/include/esp32s3 -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_rom/esp32s3 -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_common/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_system/include 
-II:/ESP-IDF/v5.2.2/esp-idf/components/esp_system/port/soc -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_system/port/include/private -II:/ESP-IDF/v5.2.2/esp-idf/components/xtensa/esp32s3/include -II:/ESP-IDF/v5.2.2/esp-idf/components/xtensa/include -II:/ESP-IDF/v5.2.2/esp-idf/components/xtensa/deprecated_include -II:/ESP-IDF/v5.2.2/esp-idf/components/lwip/include -II:/ESP-IDF/v5.2.2/esp-idf/components/lwip/include/apps -II:/ESP-IDF/v5.2.2/esp-idf/components/lwip/include/apps/sntp -II:/ESP-IDF/v5.2.2/esp-idf/components/lwip/lwip/src/include -II:/ESP-IDF/v5.2.2/esp-idf/components/lwip/port/include -II:/ESP-IDF/v5.2.2/esp-idf/components/lwip/port/freertos/include -II:/ESP-IDF/v5.2.2/esp-idf/components/lwip/port/esp32xx/include -II:/ESP-IDF/v5.2.2/esp-idf/components/lwip/port/esp32xx/include/arch -II:/ESP-IDF/v5.2.2/esp-idf/components/lwip/port/esp32xx/include/sys -II:/ESP-IDF/v5.2.2/esp-idf/components/nvs_flash/include -II:/ESP-IDF/v5.2.2/esp-idf/components/spi_flash/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_partition/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_wifi/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_wifi/wifi_apps/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_event/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_phy/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_phy/esp32s3/include -II:/ESP-IDF/v5.2.2/esp-idf/components/esp_netif/include -mlongcalls  -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -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-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -O2 -fmacro-prefix-map=I:/Projects/esp32-s3zhukongyaokongche/fasheduan=. -fmacro-prefix-map=I:/ESP-IDF/v5.2.2/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/drivers/ws2812.c.obj -MF esp-idf\main\CMakeFiles\__idf_main.dir\drivers\ws2812.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/drivers/ws2812.c.obj -c I:/Projects/esp32-s3zhukongyaokongche/fasheduan/main/drivers/ws2812.c
In file included from I:/Projects/esp32-s3zhukongyaokongche/fasheduan/main/drivers/ws2812.c:1:
I:/Projects/esp32-s3zhukongyaokongche/fasheduan/main/drivers/ws2812.h:7:10: fatal error: driver/rmt_tx.h: No such file or directory
    7 | #include "driver/rmt_tx.h"
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
[2/9] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D I:\Projects\esp32-s3zhukongyaokongche\fasheduan\build\bootloader\esp-idf\esptool_py && I:\ESP-IDF\.espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe I:/ESP-IDF/v5.2.2/esp-idf/components/partition_table/check_sizes.py --offset 0x9000 bootloader 0x0 I:/Projects/esp32-s3zhukongyaokongche/fasheduan/build/bootloader/bootloader.bin"
Bootloader binary size 0x5d00 bytes. 0x3300 bytes (35%) free.
ninja: build stopped: subcommand failed.

More Information.

But the other lib on esp32s3 can find header file, such as:

// Standard
#include <stdio.h>
#include <string.h>
// esp
#include "esp_task_wdt.h"
#include "esp_log.h"
// RGB light
//#include "drivers/ws2812.h"
// FreeRTOS
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
// NVS
#include "nvs.h"
#include "nvs_flash.h"
// WiFi
#include "esp_wifi.h"
#include "esp_mac.h"
Dazza0 commented 1 day ago

@emofalling

In the ws2812.c component's CMakeLists.txt, does the following resolve the build error?

idf_component_register(SRCS "main.c" "drivers/ws2812.c"
                       INCLUDE_DIRS "."
                       REQUIRES driver
                       PRIV_REQUIRES nvs_flash esp_wifi)
emofalling commented 7 hours ago

@Dazza0 Thank your help. I successfully resolved the build error.