ARM Technical Support Knowledge Articles

USING SRC FILES ALWAYS FORCES A RECOMPILE

Applies to: uVision IDE

Answer


Information in this article applies to:


QUESTION

When I include a C file with inline assembly in my project and I configure the IDE to compile, assemble, and link the file I've noticed that that file is ALWAYS compiled and assembled. Why is that?

ANSWER

The Keil C compilers create a list of dependencies as they compile a C file. This information is stored in the .OBJ file.

When you use the uVision IDE to build a project, as it compiles each C file, the IDE looks in the .OBJ file to determine if any of the #include files (or other dependencies) have changed. If they have (or if the .OBJ file does not exist), uVision runs the C compiler.

When you generate a .SRC file from a .C file, all of that dependency information (that is normally saved in the .OBJ file) is not saved anywhere (because no .OBJ file is generated). So, the IDE has no way to determine if the C file should be re-compiled.

Since there are usually only a few .C files that you compile into .SRC files, it shouldn't slow the build process down much. However, there are projects that use a large number of .C files compiled into .SRC files. And, that is where this caveat presents delays.

Your best work-around is to reduce the number of .C -> .SRC files in your project.

SEE ALSO

Article last edited on: 2006-06-16 13:12:00

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential