"An archive (or static library) is simply a collection of object files stored as a single file.When you provide an archive to the linker, the linker searches the archive for the object files it needs, extracts them, and links them into your program much as if you had provided thoseobject files directly."
"A shared library is similar to a archive in that it is a grouping of object files. However, there are many important differences.The most fundamental difference is that when a shared library islinked into a program, the final executable does not actually contain the code that ispresent in the shared library. Instead, the executable merely contains a reference to theshared library."
"the object files that compose the shared library are combined into asingle object file so that a program that links against a shared library always includes allof the code in the library, rather than just those portions that are needed."