We are building a pretty complex project that has a lot of files, many of which have fairly lengthy filenames. It appears that we have hit the limit of what can be compiled with Simplicity Studio v3. I have added a new file that compiles fine, but fails at the link step with one of the following 2 errors (it seems to randomly pick one or the other):
arm-none-eabi-gcc.exe: error: CreateProcess: No such file or directory
collect2.exe: error: CreateProcess: No such file or directory
The thing is, if I shorten the filename, everything compiles and links fine. For example, if the filename is "bbbbb.c", everything will build. If I change the filename to "bbbbbbbbbbbbbb.c", I will get one of the errors.
Is this a known problem that has been fixed in Simplicity Studio v4? We are a little hesitant to upgrade in the middle of development when all of our testing up to this point has been done with code compiled with v3. If it's not a known problem, can anyone give me any advice on how to resolve this?
this may not be it but many tools dislike spaces in filenames
Can you share more details like maybe the full build console output? Windows has some various path and command line limits and it is hard to know if one of those is being bumped up against without more information. So for instance the command line passed to the linker might be bumping up against some limit.
I've attached a file with the failing link command. If you look, there's a file named "bbbbbbbbbbbbbbbbbbbb.o". This is the newest file, and is the one that is just over the limit. If I reduce that filename to "bbbbbbbbbbbb.o", everything will link just fine.
I've done some research and apparently the CreateProcess call, made by Cygwin, has a limit of 32768 characters for its input (including unicode encoding). It's pretty clear to me that we are over this limit.
One way to work around this would be to combine some of the file into a static library and then to just link the library into the project. I'm not sure if this would work for you or not.
I was playing around with trying to move the list of files into the linker command file "C:\Projects\Core_Library_Brendan_Development/EFM_SDK/Device/EFM32GG/efm32gg.ld". But I wasn't able to remove the object files from the Ordering window to avoid having duplicate definitions, just the library files from the linker Miscellaneous section. If I find a way to do this I will let you know.
I upgraded to Simplicity 4 and the problem is resolved. Thanks for taking a look though!