OSX Startup Manager (Boot drive selection screen) slow/un-responsive in Macbook Pro (early 2015)

Since you don't know what -c (compile object file) and -o (specify output file) do, I would suggest to start with a simple executable compilation. Understand what are object files and how they are put together.

Proceed with static libraries. Understand that static libraries are just several object files archived together. How they are specified to the compiler and how the compiler finds them.

Then, finally, try the dynamic ones. Understand that they are linked at runtime. That you need to specify where they are found. That they are compiled and linked a different way (have you seen -fPIC yet?). That they can depend on each other. They are powerfull beasts that can bite you easily :)

And an easy way to create static and dynamic libraries? Forget about writing them manually and use cmake. If you want to go deep, run make with VERBOSE=1, see compiler arguments and learn.