

Basically, any line that starts with a #, such as #define and #include.

When you have a reusable or logically distinct set of functions, it is helpful to build a library from it so that you do not have to copy the source code into your current project and recompile it all the time - and so you can keep different modules of your program disjoint and change one without affecting others.
#CMAKE LINUX SHARED LIBRARY SOFTWARE#
Most larger software projects will contain several components, some of which you may find use for later on in some other project, or that you just want to separate out for organizational purposes. They often provide generic functionality, like linked lists or binary trees that can hold any data, or specific functionality like an interface to a database server such as MySQL. They are pre-existing code that is compiled and ready for you to use. Libraries are an indispensable tool for any programmer.
