-
Notifications
You must be signed in to change notification settings - Fork 132
Command to long for windows #1210
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
I created ws and project again, this time there is no "_" in the name, but the path string also has an error: |
Another case is "arduino.ar" becomes "arduinoar" |
This looks like #1153 which I never could reproduce. |
I read the #1153 in detail and it was a bit similar and tried to change the "ESP32-ble-Keyboard" in the example to "ESP32_BLE_Keyboard" for verification, but the same error occurred. I wondered if there was an occasional problem. After that, I tried 3 computers, all of which installed v4.3.3 sloeber, created workspaces and project, and added the same library, but the same error occurred. This problem can be 100% repeated. If you can test it, I'm sure you can solve it. Here are the steps.
In the above example I tested the error as follows: Thank you for your help. |
In addition, #1153 appears to be a problem in the automatically generated Makefile file. I checked the makefile generated by the above example and didn't find any error. "rrduino.ar" is right it doesn't become "arduinoar", which is strange. I really don't know what the problem is.
|
If the makefile is ok (and it looks like it is) it must be a make issue. |
Sorry, I don't quite understand 'make delivered'. I downloaded here: The unzip installation path is e:\sloeber. |
Then you should be using the Sloeber delivered make
Maybe $(LINK_OBJ) expands to E:\sloeber\test\Release/arduinoar |
run [sloeber install]/arduinoPlugin/tools/make/make in D:\ESP32_Arduino_Sloeber/ble_test/Release |
Sorry, I'm very unfamiliar with the command line. I tried three ways, but it didn't work...
The above commands are search on network, I do not understand the specific meaning, could you give an example for that project (D:\ESP32_Arduino_Sloeber\Build_Test), thank you. |
I tried the following steps again:
As shown in you "xtensa-esp32-elf-gcc: error: D:\ESP32_Arduino_Sloeber\uild_Test\Release/arduino.ar: No such file or directory" that "Build_Test" become "uild_Test" string error, an arduino.ar is generated.
The same error occurs after execution:
|
I tried to change the project name and then compiled to get the following results: 1. project name "_1_B"
"Release" become "Rlease", the letter e is missing 2. project name "B"
"Release" become "Relese", the letter a is missing 3. project name "1_2_3"
"Release" become "elease", the letter R is missing |
The fact this is so reproducible makes me think we are actually not looking at the right thing.
This is the right command. What is weird is that make tells you all is build fine. Which goes against the fact the build fails. Anyway. keep me posted |
So amazing!
The compilation succeeded after replacing the file inside the make.zip.
Some issues you mentioned have not been tested yet, I will continue to
test, and If there is any exception, I will post it.
I can continue my work and sleep happily. Thank you very much for your help
!
jantje <[email protected]> 于2020年8月1日周六 下午5:53写道:
… The fact this is so reproducible makes me think we are actually not
looking at the right thing.
First some feedback
Sorry, I'm very unfamiliar with the command line. I tried three ways, but
it didn't work...
E:\software\Sloeber\arduinoPlugin\tools\make>make
D:\ESP32_Arduino_Sloeber\Build_Test\Release
make: Nothing to be done for 'D:\ESP32_Arduino_Sloeber\Build_Test\Release
This is the right command. What is weird is that make tells you all is
build fine. Which goes against the fact the build fails.
Anyway.
The combine command is 92332 characters long. arduino.ar is around
position 8326. Windows has a maximum command line of 8191.
I'm pretty sure that is the problem you are experiencing.
This makes this issue a duplicate of #1053
<#1053>
To work around that rename [sloeber install]/arduinoPlugin/tools/make to
[sloeber install]/arduinoPlugin/tools/make.org
download
https://github.com/Sloeber/arduino-eclipse-plugin/files/2695478/make.zip
extract the make.zip in [sloeber install]/arduinoPlugin/tools
If I remember correctly this package cause some issues with other stuff
(like escaping ") so I havn't moved to this make yet.
Actually it is the same make but sh is included overcoming the cmd command
line limitation
keep me posted
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#1210 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ANQVD2KIBURIEBGTD5MJ2W3R6PQYBANCNFSM4PNAWDSA>
.
|
Hi all. Now I have this issue reproducible - but only on one of my laptops. The issue is that a letter is swallowed from the path and make.exe complains that the path is invalid or it doesn't exist:
The error report says about the .\librares directory, where the i letter is gone. I'm building some application with ESP32 package that uses NimBle-Arduino library. There is a lot of files to compile but the error comes from combiner. I'm not quite sure how it is related to the limit of cmd.exe command length. I have noticed that some compile commands are longer than 8192 and they succeed. It fails only while linking. First laptop:
Second laptop:
The make seems to be old (the same output for both laptops):
Interesting. Maybe this make.exe works better with Windows 10? I will also try the trick with the newest make.zip file. |
This article doesn't help much. It mostly says that the characters limit is 2047. Better explanation about limits I found here: I tested on Windows 7 the make-4.2.1 from the attached https://github.com/Sloeber/arduino-eclipse-plugin/files/2695478/make.zip It works nice, I mean the issue is solved with this version of make (4.2.1). It also works on Windows 10 (however the issue is not reproducible there even with the older make version). It even works when I just use the make.exe without any sh.exe etc. Now I think that there was some bug in make which is already fixed.
There must be some commit done between 3.82.90 and 3.99.90 and - yes - I already saw in make repo - there was a lot of commits between those two versions. Second thing I don't know why the issue is not reproducible on Windows 10 even when using make-3.82.90. It must be also related to some difference between Win7 and Win10. I have no idea. For now I'm happy with my findings and the workaround documented in #1053. |
As sh.exe does not have the truncation problem I hoped to switch to sh.exe. However
These differences between make.exe and sh.exe cause problems for certain boards. So the zip with make.exe and sh.exe can be used as a workaround but not as general solution. |
Today, I found that the Arduino of ESP32 updated 1.0.5. I tried not to modify the code compilation, but there was an error:
The mistake is:
The path is wrong. Missing character " \" My sloeber is 4.3.3, not up to date. I don't know if it's make.exe(4.2.1), but ESP32 Arduino V1.0.4 doesn't have this problem |
Great! Updating the make works for me, too! Thank you!! I can confirm that this issue doesn't appear on Win 10 even with old make. |
EDIT: since I changed the definition of build.path to be OS dependent the problem went away I tried to run my default.ino on all boards test with the sh version and I get errors with ESP32 in regards to the prebuild commands
|
I'm reopening this as I want the workaround to become the standard solution. |
Thanks jantje as you pointed me to this solution. Works very good. |
Closing as I'm releasing 4.4 |
Using the environment
Sloeber v4.3.3 (Zip package installation, path: E:\software\sloeber)
win7 64bit
target: ESP32 Arduino 1.0.4
Step
BUG
An error occurred after compiling the file, with the following contents:
One of the above words : xtensa-esp32-elf-gcc: error: D:\ESP32_Arduino_Sloeber\uild_Test\Release/arduino.ar
The project name is "Build_Test" but combiner use a path was "\uild_Test", the letter B is missing.
And then I remove all the libraries, and I recompile, and I can compile, which is weird.
Screenshots

Green is project name.
Blue is increase the library
Read is incorrect path string.
How do I fix it, or do I have a problem with it?
Thanks.
The text was updated successfully, but these errors were encountered: