So far, all of our code that we have written has been statically linked. This means that all of the code is physically contained within the final executable. The linker literally brings all of the code together, figures out which object file has which functions and memory locations defined in them, and builds a single executable which can be loaded and run on Linux. If you make calls to the standard C library (or other libraries), those functions are themselves physically copied into your program.
An alternative approach ...