## Archives

 1. You might remember that static libraries are basically zipped-up
    object files. Hence, we will need some object files to make a
    static library.
 2. I prepared two very simple math functions, each in its own C
    file. You can have a peek if you like:
    
        $ cat factorial.c
        $ cat fib.c

 3. Let's compile those into object files:
    
        $ cc -c factorial.c
        $ cc -c fib.c
        $ ls *.o

 4. And make a static library out of them:
    
        $ ar r libmath.a factorial.o fib.o

 5. And we can use the simple ‹math.c› I prepared for you for our
    ‹main› function:
    
        $ micro math.c
        $ cc -c math.c
        $ cc math.o libmath.a
        $ ./a.out

 6. It might be interesting to see what happens if we try to link
    our ‹math.o› without the library:
    
        $ cc math.o
        math.c:(.text+0xe): undefined reference to `fib'
        collect2: error: ld returned 1 exit status
    
    The linker tells us that it did not find a definition for ‹fib›
    and cannot produce an executable for this reason. We also see
    that the compilation driver in ‹cc› invoked ‹ld› internally, and
    told us that ‹ld› failed with an exit code 1.

Now we should be ready to work out exercise 3:

    $ cat 3.txt
