This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Keil uvision-4 source file not found with gnu-arm-gcc

When I try compile my software, I have the following error :

arm-none-eabi-gcc: error: ..srckernelmutex.c: No such file or directory

There is no backslash in the path, normally is ..\src\kernel\mutex.c

why ? anyone can help me ?

Parents
  • Hi Per,

    When I try to compile directly by calling arm-none-eabi-gcc and give it the C file with slashes or backslashes it's fine. But when I try with uvision, I have the issue, it seems like uvision remove separator (slashes or backslashes) before calling gcc. I don't understand why ? I try code sourcery tools who are describe by keil to be comptatible with uvision. I followed keil's guide to install and I have always the same problem. My version of uvision is 4.72.1.0

Reply
  • Hi Per,

    When I try to compile directly by calling arm-none-eabi-gcc and give it the C file with slashes or backslashes it's fine. But when I try with uvision, I have the issue, it seems like uvision remove separator (slashes or backslashes) before calling gcc. I don't understand why ? I try code sourcery tools who are describe by keil to be comptatible with uvision. I followed keil's guide to install and I have always the same problem. My version of uvision is 4.72.1.0

Children
  • At least other versions of uvision have correctly handled source files in sub directories - and with "correctly" I mean using \ which is the native path separator in Windows.

    But note that a unix program that receives a path with \ and then tries to print it is likely to drop the \ in the printout - this because the \ has special meaning when the text string is printed. It is, after all, specified in the C language standard as a break character intended to inform that the following character should be treated specially.

    So most likely, the tool is "correctly" called with a path containing \. It then fails to make use of subdirectories because it expects / as path separator. And it then finally prints an error message and that print strips the \ making you see all the elements of the path merged together as a single name.