Compile error: API components not found

shermanlee
Posts: 7
Joined: Fri Sep 02, 2022 1:33 am

Compile error: API components not found

Postby shermanlee » Mon Aug 07, 2023 9:34 am

Hi, I hv to take over a old project to make modification and I encounter some problem on compiling the project.
I hv imported the project and try to compile. Expectedly lot of error come out.
Most of them could be solved by adding "REQUIRES xxx" which add back the required components.
But at the very last 2 errors I couldn't resolve.

1. fatal error: driver/spi_master.h: No such file or directory
2. implicit declaration of function 'esp_efuse_mac_get_default" [-Werro=implicit-function-declaration]

I hv added "REQUIRES driver" & "REQUIRES esp_hw_support" to the CMakeList to according directory.
Also I could navigate to both src files using open declaration.

Do any one have a clue and similar situation for me to take a reference?
Thanks!

System info:
Operating System: windows 10
Java Runtime Version: 18.0.1+10
Eclipse Version: 4.25.0.v20220831-1800
Eclipse CDT Version: 10.7.1.202208160035
IDF Eclipse Plugin Version: 2.9.1.202304060814
ESP-IDF v5.1-dev-437-g5c1044d84d-dirty
Python set for IDF_PYTHON_ENV: Python 3.10.7

ESP_igrr
Posts: 2071
Joined: Tue Dec 01, 2015 8:37 am

Re: Compile error: API components not found

Postby ESP_igrr » Tue Aug 08, 2023 1:33 pm

To troubleshoot this, you can try the following:

1. Identify the source file where the issue occurs. If the error is reported in a header file, then also find the header file.
2. Open build/compile_commands.json and fine the compiler command line which corresponds to the said source file. Does it have the include path for IDF/components/driver/...?
3. Which component(s) are the source file and the header file part of? Does the component's CMakeListst.txt list "driver" in its REQUIRES list?

shermanlee
Posts: 7
Joined: Fri Sep 02, 2022 1:33 am

Re: Compile error: API components not found

Postby shermanlee » Tue Aug 29, 2023 1:34 am

Thank you for the reply!

I hv found the problem.
Another component, which hv not added the requires drive in the CMakeList, is calling the reported component.
So that another component hv not included the requires drive casuing the error.
After adding "REQUIRES drive" in the CMakeList, the problem solved.

Who is online

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