Hey,
I've looked around on Google and through these forums. I cannot find a solution to my problem. I'm willing to try suggestions and am eager to figure this out.
The problem: I have a project that is compiling without error but will not build. It looks like the linker isn't being called, but I'm not sure how to tell. I have tested building other projects on my computer for the same processor with the same version of uVision (V4.14.16.0). Other projects build correctly, so I don't think it is the way I installed the IDE. Additionally, I have successfully built this project on a different computer with the same version of the IDE. As far as I can tell I haven't changed anything in the project file (I pulled it off of SVN so I can see when I change something).
Here is the build output (abbreviated for repetitive lines and with project/file names changed).
Build target 'ProjectThatShouldJustBuild' compiling Main.c... compiling ADC.c... compiling ErrorHandler.c... compiling Flash.c... compiling Interrupts.c... compiling LCD.c... compiling MathFunc.c... compiling SerialInterface.c... compiling SMBus_Per.c... compiling Timer.c... assembling STARTUP.A51... assembling add64and64.a51... compiling LVR.c... compiling LCDDriver.c... compiling Configuration.c... Target not created
As you can see, there are no error messages and no warning messages. It just finishes compiling, and then declares that the target isn't created.
Any ideas? Much obliged, Brian Arnberg <><
Download the latest C51 version from below link and try again: www.keil.com/.../
If it does not help, contact technical support: www2.keil.com/.../silver
Thank you for the advice. However, updating C51 version is not an option because this is for a legacy system. Also, since I have the exact same version installed on another machine (multiple other machines, actually) and it is working, I'm inclined to think it is something different. That said, I will consider it.
I will take your advice on contacting technical support.
Solved Some uVision combinations of version and license require the project and IDE/Compiler installation to be on the OS harddrive. It appears my setup was one such combination. Moving the project to the OS harddrive (where the IDE/Compiler was installed) solved the problem. Moving the IDE/Compiler to the data harddrive (where the project was) did not solve the problem. I did not try having the project on the OS drive and the keil installation on the data drive, but I don't see the point in trying that.
I found that out on a whim. I was frustrated and tried moving the project just to see what would happen, and that fixed it. My project harddrive is really big, so I'm sad about needing to have the project on the same harddrive as the IDE, but both are internal so it's just something that I'll need to move.
Solved (part 2): There is different solution. One of the files in my project had a space in the name. Removing the space from the name made the project compile and then link correctly, regardless of which harddrive the project was on. Don't know why a space in the name would matter on one harddrive and not on the other, but there you go.
Summary: If this happens to you, fixes are 1) make sure no files have spaces in them (make sure the old guys on your team comply here), or 2) move the project to a different harddrive.
I hope this helps someone in the future, but I also hope no one else deals with this problem.
Spaces in names is a big problem with many apps. A rule i gave myself years ago was to avoid them whetever possible. A rule from so long ago that i no longer think about it.
Definitely worth highlighting your findings though. Thanks.
Agreed. I can't stand looking in source code and finding spaces in file names, but this one was specially hidden. The file name was "Some_Long_Name .c" and I overlooked it.
And not just spaces - also other special characters including punctuation, accented letters, ampersand, etc, etc, ...
www.avrfreaks.net/.../2048571
"but this one was specially hidden. The file name was 'Some_Long_Name .c' and I overlooked it"
Now that is nasty!
Indeed.