C is a compiled language, therefore anything you write (source code) goes through a series of process in order to have your executable code. I like to think of it like a recipe, you have to go step by step in other get your exquisite code done. Let me show you how to cook a compiled code.
After you have finished your source code you have to pass it through the compiler, in this case GCC (GNU Compiler Collection).
Now lets break this down, the compiler goes through 4 steps before plating out your program (compiled file). First step is the Preprocessor, this will search for headers (#include) and macros (#define) in code and expand them. If you want to stop the compiler at this first step, here is how you would do it:
Secondly expanded code will go through the Compilation process. In this step the compiler compiles the output from the preprocessor step into an assembly code for a specific processor. Just like before if you wish to stop the compilation process at this step you will need to flag it. If done, you will be generating a another file with the same name as your main file but with the extension “.s” . Let’s see below:
Third step is the Assembly process, basically converts your file into machine code(zero and one) AKA binary code. The flag to stop the compiler is “-c” and it will output your file with the extension “.o”
Final step will be the Linking process, this will take the object file (main.o) and link it with a library function needed. Finished product will be an executable file “a.out” by default if given no output filename. If you would like to rename your executable file give it this option “-o” at gcc.
Now lets look at the finished program:
If you have enjoy this blog, please share and leave a comment on how can I improve this blog or on any topic you will like to write on. Thank you for taking the time to read me.
Kryukova T. (2017) ‘The Magic Black Box of GCC Explained’, Medium, 17 May. Available at: https://medium.com/@tyastropheus/the-magic-black-box-of-gcc-explained-54f991f4f6a2#:~:text=There%20are%20four%20steps%20in,in%20order%20to%20execute%20it. (Accessed: 4 February 2021).
(2018) ‘GCC and Make Compiling, Linking and Building C/C++ Applications’, ntu.edu.sg, March. Available at: https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html . (Accessed: 4 February 2021).