-
-
Notifications
You must be signed in to change notification settings - Fork 399
ESP32 Nano core 2.0.18 does not compile due to long core folder name 2.0.18-20240930.arduino3 #2716
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi @ednieuw.
It doesn't give errors for me, so we're going to need you to provide more information. Please do this:
|
Just adding to @per1234's reply If you want to keep your user name anonymous, please replace it by something with the same length and the same number of spaces, same odd characters (if any) and so on. As mentioned on the forum, I compiled your sketch without issues and by coincedence my user name is 5 characters (just like your abcde). |
I removed the library and installed again the latest Arduino Nano ESP32 library. The error lines:
Restarting the IDE to avoid caching problem gave the same errors. |
I did look at your zip. It goes wrong at line 71 which has a length of 32531 characters; this is very close to 32k which might (or might not) be a coincidence. All other lines up to that point for "Resolve library" are shorter. Even if you rename the package directory to a shorter name as you did, I'm reasonably sure that you will run into the same problem if your code requires more libraries. |
I changed the folder name to 2.0.18-rc3 as suggested by the Arduino team. This resolved the issue for me for now. |
Joys of Windows (tm) development. Problem is that command line length for Moving directories to root level and renaming them to one-character names would help. But the main problem is hardcoded 32KiB limit on your operation system. Under GNU/Linux systems command line length is configurable parameter. For my case it is 2MiB.
|
Based on the error log in #2716 (comment) I've tried to recreate the errors. One can make the compile process fail based on below description. OS: Win11 //#include <Preferences.h>
//#include <Adafruit_NeoPixel.h>
#include <NimBLEDevice.h> // library
//#include <Ticker.h>
#include <ESPAsyncWebServer.h> // library
//#include <AsyncTCP.h> // library
//#include <FS.h>
//#include <WiFi.h>
void setup()
{
// put your setup code here, to run once:
}
void loop()
{
// put your main code here, to run repeatedly:
} This sketch does compile. Next I went in steps to enabling some more libraries. //#include <Preferences.h>
#include <Adafruit_NeoPixel.h>
#include <NimBLEDevice.h> // library
#include <Ticker.h>
#include <ESPAsyncWebServer.h> // library
//#include <AsyncTCP.h> // library
//#include <FS.h>
//#include <WiFi.h> It still compiled. In the last step, enabling Preferences.h, it failed. #include <Preferences.h>
#include <Adafruit_NeoPixel.h>
#include <NimBLEDevice.h> // library
#include <Ticker.h>
#include <ESPAsyncWebServer.h> // library
//#include <AsyncTCP.h> // library
//#include <FS.h>
//#include <WiFi.h> Full output attached (err01.txt); check the output for CreateProcess error. Note that something like below is missing in favour ( 🙂 ) of a ping timeout error popup
There are a few variations possible that all result in errors. After above I disabled the NimBLEDevice library and the compile still fails on the Preferences library #include <Preferences.h>
#include <Adafruit_NeoPixel.h>
//#include <NimBLEDevice.h> // library
#include <Ticker.h>
#include <ESPAsyncWebServer.h> // library
//#include <AsyncTCP.h> // library
//#include <FS.h>
//#include <WiFi.h> Full output attached (err02.txt) Note that we now get the A number of variations are possible with the includes. The number of CreateProcess errors seems to have a relation with the number of source files in the affected library after clearing the cache (both cores and sketches). |
Another one to add to the list: https://forum.arduino.cc/t/createprocess-error-when-uploading-esp32-iot-cloud-code-from-arduino-ide/1322028/ Issue confirmed with the code presented in the topic; log attached. Just an observation: |
Core There are 2 fundamental Windows limitations derived from decades of legacy:
Point 1 is solved by converting, in each compiler call, ~200 instances of the core install path to a single one which is referenced multiple times. This reduced in my case a ~28kB command line into a ~10k one - way below the limit, and the multiplier for extra chars in the user name is now 3 and not 200! 🎉 Point 2 is only mitigated, since most of the install path is not directly under control. However, the longest path used by include files has been shortened by 30 chars by renaming the accessible "tool name" and "tool version" components (other paths were already below this limit). |
Closing as confirmed by OP here: https://forum.arduino.cc/t/core-2-0-18-gives-compile-errors-in-ide2-and-how-to-solve/1307544 |
Describe the problem
If core 2.0.18 in installed sketches fail to compile in IDE2 but will compile in IDE1
IDE2 can not cope with the too long folder name of 2.0.18
To reproduce
Just compile a sketch --> gives errors
In this folder
c:\Users\abcde\AppData\Local\Arduino15\packages\arduino\hardware\esp32\
rename the folder
2.0.18-20240930.arduino3
to
2.0.18
Expected behavior
No errors
Arduino IDE version
2.3.3
Operating system
Windows
Operating system version
W11
Additional context
Additional reports
Issue checklist
The text was updated successfully, but these errors were encountered: