Linux Tutorial Series

Linux Tutorial Series – 174 – Compiling when programs get large – build systems

Here is the video version, if you prefer it:

Today I want to introduce you to the concept of a build system. To understand what a build system does, let’s first discuss some other things and then we will gleam an intuition behind build systems.

Let’s say you were compiling a program that used a lot of libraries. To remind ourselves, libraries have to be linked to our program to produce the final executable file. Those libraries can also be called dependencies – we depend on them (or, more precisely, on the functionality within them) to be able to use our program.

Now, imagine if our program depended on a lot of libraries. Let’s say thousands of them. I think you get a feeling that it would be pretty hard to manage all of that manually. We would have to tell the linker to look for all of the thousands of libraries and that is tedious. And one thing programmers don’t like is tedious.

Build systems take care of this problem (among other things). Build systems make managing dependencies very easy. One of the most popular build systems is make, which is used when building programs from source code – that is, when compiling programs from source code.

Hope you learned something useful!