The standard C++ compilation process
suggest changeExecutable C++ program code is usually produced by a compiler.
A compiler is a program that translates code from a programming language into another form which is (more) directly executable for a computer. Using a compiler to translate code is called compilation.
C++ inherits the form of its compilation process from its “parent” language, C. Below is a list showing the four major steps of compilation in C++:
- The C++ preprocessor copies the contents of any included header files into the source code file, generates macro code, and replaces symbolic constants defined using
#define
with their values. - The expanded source code file produced by the C++ preprocessor is compiled into assembly language appropriate for the platform.
- The assembler code generated by the compiler is assembled into appropriate object code for the platform.
- The object code file generated by the assembler is linked together with the object code files for any library functions used to produce an executable file.
- Note: some compiled code is linked together, but not to create a final program. Usually, this “linked” code can also be packaged into a format that can be used by other programs. This “bundle of packaged, usable code” is what C++ programmers refer to as a library.
Many C++ compilers may also merge or un-merge certain parts of the compilation process for ease or for additional analysis. Many C++ programmers will use different tools, but all of the tools will generally follow this generalized process when they are involved in the production of a program.
The link below extends this discussion and provides a nice graphic to help: http://web.archive.org/web/20190419035048/http://faculty.cs.niu.edu/~mcmahon/CS241/Notes/compile.html