C compilation goes through several stages. For clang
, the C compiler on my machine, these are:
+----+ +----+ +-----+ +---------+ +----+ +----+ +-----------+
| .c |--cpp-->| .i |--parser-->| AST |--??-->| LLVM IR |--??-->| .s |--as-->| .o |--ld-->| a.out/.so |
+----+ +----+ +-----+ +---------+ +----+ +----+ +-----------+
main.c
, preprocess to produce tokens (a .i
file). This is done by the C preprocessor, cpp
..s
file)..o
file). This is done by the assembler, as
.a.out
) or dynamic library (.so
).I’ll cover these stages in future posts.
I wrote this because I felt like it. This post is my own, and not associated with my employer.
Jim. Public speaking. Friends. Vidrio.