Cannot compile ESP32 projects There is no /esp32-arduino-libs directory

I desperately need some advice please. When compiling for an ESP32 board I get path not found message. When in verbose mode the following compiler step fails, likely because the /esp32-arduino-libs/ path cannot be found.

I am suspecting the boards manager URL might not be the correct, but clearly the expected compiler makefiles do not match the directory structure of the arduino15 directory structure.

Any guidance anyone can offer would be greatly appreciated. Thank you

I don't see the step where you went to the Board Manager and actually installed the esp32.

If I included the screen grab of Arduino ESP32 Boards by Arduini and esp32 by Espressif Systems incorrectly, I apologize and please correct me.

Also, I am including the makefile command that fails. I have replaced my directory name with "me"
C:\Users\me\AppData\Local\Temp\arduino\sketches\A86AF884C882E049BEAB6F91A0A33C80\GC_203.ino.bootloader.bin" "C:\Users\me\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14/tools/esp32-arduino-libs/esp32\bin\bootloader_qio_80m.elf" ) )
The system cannot find the path specified.

Thank you again

Hi @whashburn

I'm not sure what you mean by makefile command.

Are you compiling an Arduino sketch using Arduino IDE? Or are you using a Makefile?

If you are using a Makefile then we will need more information. If you found the Makefile on the Internet, you can provide a link to the page you got it from to get us started.

Hi ptillisch

I apologize if I am using the wrong vocabulary.

I am definitely compiling the sketch using the Arduino IDE. I merely assumed that the verbose output of the compiler, such as the command I included that fails with β€˜path not found’ were makefile commands.

whashburn

Thanks for the clarification. Arduino IDE does not use Makefiles or make in any way. However, the Arduino community has created some Makefiles that replace the standard Arduino sketch compilation and upload system and some users who have an inexplicable affinity for using Makefiles use those instead of Arduino IDE. Since you mentioned "makefiles", I thought you might be using one of those 3rd party Makefiles instead of compiling using Arduino IDE.

The folder is supposed to be named sdk so it was wrong for you to change the folder name.

Please uninstall and then reinstall the ESP32 boards platform so that we can be sure you are starting from a standard installation that hasn't been corrupted in any way:

  1. Select Tools > Board > Boards Manager from the Arduino IDE menus to open the "Boards Manager" view in the left side panel.
  2. Scroll down through the list of boards platforms until you see the "esp32 by Espressif Systems" entry.
  3. Hover the mouse pointer over the "esp32 by Espressif Systems" entry.
    You will see a ●●● icon appear at the top right corner of the entry.
  4. Click the ●●● icon.
    A menu will open.
  5. Select "Remove" from the menu.
    An "Uninstall" dialog will open.
  6. Click the "YES" button in the "Uninstall" dialog.
  7. Wait for the uninstallation to finish.
    β“˜ The progress will be shown by a notification at the bottom right corner of the Arduino IDE window.
  8. Click the "INSTALL" button at the bottom of the "esp32 by Espressif Systems" entry.
  9. Wait for the installation to finish.

Now try compiling your sketch again, just as you did before. If you get the original error related to esp32-arduino-libs, please provide the full and exact text of the error message:

  1. You will see a "Compilation error: ..." notification at the bottom right corner of the Arduino IDE window after a compilation fails. Click the "COPY ERROR MESSAGES" button on that notification.
  2. Open a forum reply here by clicking the "Reply" button.
  3. Click the <CODE/> icon on the post composer toolbar.
    This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code tags icon on toolbar
  4. Press Ctrl+V.
    This will paste the compilation output into the code block.
  5. Move the cursor outside of the code tags before you add any additional text to your reply.
  6. Click the "Reply" button to post the output.

In case the output is longer than the forum software will allow to be added to a post, you can instead save it to a .txt file and then attach that file to a reply here:

  1. Open any text editor program.
  2. Paste the copied output into the text editor.
  3. Save the file in .txt format.
  4. Open a forum reply here by clicking the "Reply" button.
  5. Click the "Upload" icon (image) on the post composer toolbar:
    Upload icon on toolbar
    A dialog will open.
  6. In the dialog, select the .txt file you saved.
  7. Click the "Open" button.
  8. Click the "Reply" button to publish the post.

Alternatively, instead of using the "Upload" icon on the post composer toolbar as described in steps (5) - (7) above, you can simply drag and drop the .txt file onto the post composer field to attach it.

Thank you for offering to help.

Sort answer unfortunately is the compile fails looking for .../esp32-arduino-libs/...

I have included two txt files. The first is the installation log of the installation of the esp32 by Espressif Systems, and the second txt file is the verbose verify output . It still shows (about 40 characters in from the end of the last line, that 'it' is looking for /esp32-arduino-libs?

As a double-check, I am using "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json" as the board manager URL for the esp32. Am I using the correct json file. Would you like me to use a different json file?

Thank you again

2023-11-28 Complete log of failed compile of esp32 Dev Module.txt (2.6 KB)
2023-11-28 Log of successful reinstallation of esp32 by Espressif Systems.txt (1.9 KB)

I see that they do use this esp32-arduino-libs in the latest beta tester version of the ESP32 boards platform:

https://github.com/espressif/arduino-esp32/blob/990e3d5b431b63b4adc364b045a79afdad645a3f/platform.txt#L4

tools.esp32-arduino-libs.path={runtime.platform.path}/tools/esp32-arduino-libs

https://github.com/espressif/arduino-esp32/blob/990e3d5b431b63b4adc364b045a79afdad645a3f/platform.txt#L36

compiler.sdk.path={tools.esp32-arduino-libs.path}/{build.mcu}>

https://github.com/espressif/arduino-esp32/blob/990e3d5b431b63b4adc364b045a79afdad645a3f/platform.txt#L135

recipe.hooks.prebuild.4.pattern.windows=cmd /c IF EXIST "{build.source.path}\bootloader.bin" ( COPY /y "{build.source.path}\bootloader.bin" "{build.path}\{build.project_name}.bootloader.bin" ) ELSE ( IF EXIST "{build.variant.path}\{build.custom_bootloader}.bin" ( COPY "{build.variant.path}\{build.custom_bootloader}.bin" "{build.path}\{build.project_name}.bootloader.bin" ) ELSE ( "{tools.esptool_py.path}/{tools.esptool_py.cmd}" {recipe.hooks.prebuild.4.pattern_args} "{build.path}\{build.project_name}.bootloader.bin" "{compiler.sdk.path}\bin\bootloader_{build.boot}_{build.boot_freq}.elf" ) )

However, it is not used by the 2.0.14 release version provided by the https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json package index:

https://github.com/espressif/arduino-esp32/blob/2.0.14/platform.txt#L183

recipe.hooks.prebuild.4.pattern.windows=cmd /c IF EXIST "{build.source.path}\bootloader.bin" ( COPY /y "{build.source.path}\bootloader.bin" "{build.path}\{build.project_name}.bootloader.bin" ) ELSE ( IF EXIST "{build.variant.path}\{build.custom_bootloader}.bin" ( COPY "{build.variant.path}\{build.custom_bootloader}.bin" "{build.path}\{build.project_name}.bootloader.bin" ) ELSE ( "{tools.esptool_py.path}/{tools.esptool_py.cmd}" {recipe.hooks.prebuild.4.pattern_args} "{build.path}\{build.project_name}.bootloader.bin" "{runtime.platform.path}\tools\sdk\{build.mcu}\bin\bootloader_{build.boot}_{build.boot_freq}.elf" ) )

(note it is {runtime.platform.path}\tools\sdk\ instead of {runtime.platform.path}/tools/esp32-arduino-libs as in the beta tester version)

So the question is: why are you getting the beta tester version of the ESP32 boards platform?

Please select File > Preferences from the Arduino IDE menus and then check the contents of the Additional Boards Manager URLs field. Do you have any URLs in that field other than the one you mentioned using:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

That one should be fine. They do list a different URL in the official installation instructions:

https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#:~:text=or%20development%20release.-,Stable%20release%20link,-%3A

However, the URL you are using is functionally identical to that URL (they actually point to the very same file and I verified that version 2.0.14 has the same checksum when using either of the URLs).

Good morning, WE HAVE SUCCESS.

To answer your question, Yes, I also have an esp8266 URL "http://arduino.esp8266.com/stable/package_esp8266com_index.json".

To provide information to others reading this thread...Skip to (5) if you are impatient

Today I performed the following steps
(1) I uninstalled the esp32 board json file (via the "..." ).

(2) I was not able to find any esp8266 boards packages installed (searching for esp8266 showed no boards, and searching just for esp showed a selection of boards of course though all were tagged "install".

(3) I removed both URLs from the Additional board manager URLs field. Closed my esp32 sketch and closed the IDE.

(4) Wiped Arduino15, opened the IDE and selected the blink example with an Arduino Uno and allowed the IDE to install the Arduino AVR Boards by Arduino 1.8.6. Verify still failed - with path not found.

(5) so as not to waste time I uninstalled Arduino 1.8.19 and 2.2.1 (I have been using 2.2.1), and from /users/hbeck/AppData/Local I wiped: Arduino15, ArduinoData, .arduinoIDE, .espressif, even arduino-ide-updater!, and reinstalled Arduino 2.2.1. I left intact the files in AppData/Roaming.

(6) Starting 2.2.1 the Blink Script was brought up and I allowed the Arduino AVR Boards [v1.8.6] core to be installed, and ran verify against Blink and the compile succeed.

(7) Loaded an esp32 sketch, selected an ESP32DevKit board and the IDE suggested esp32.2.0.11, so instead of specifying a URL in the preferences->board manager, I accepted the IDE recommendation AND THE COMPILE SUCCEED!

Important to note and a question to Oldcurmudgeon and ptillisch - Preferences -> My Addition board manager URL file field is empty. Should I populate it with a URL you recommend, or just leave it blank?

Thank you very very much for your patience and excellent instructions It is much appreciated.

whashburn :smile:

You are welcome. I'm glad it is working now. Thanks for taking the time to post an update with your findings.

It is a good idea to leave the URL in the "Additional Boards Manager URLs" field of the IDE preferences.

Your current installation of the ESP32 boards platform will work fine in Arduino IDE 2.x even without the URL in the preferences. However, in addition to enabling the initial installation of a 3rd party platform, the URL also allows Arduino IDE to offer you updates to newer versions of the platform whenever the platform developers make a new release. If you don't have the URL in your IDE preferences then you won't be aware when a new version is available at some point in the future and you might miss out on important bug fixes or enhancements that were made since the time of the version you have installed currently.

Thank you for the board manager URL suggestion. At espressif the current reference is: https://espressif.github.io/arduino-esp32/package_esp32_index.json

I am OK with closing this request if you are.

Again, many thanks and I hope you have happy and healthy holidays.

:smiley:

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.