Explain the difference between a static library and a dynamic library? - Static library is linked into the executable, while a dynamic library (or shared object) is loaded while the executable has started.
How do you create a static library? - If you have a collection of object (.o) files, you can do it by running ar command. Generally a static library has a .a extension, and you can link it into an executable by providing -l libraryname to gcc.
Where should the developed libraries be installed on the system? - GNU recommends /usr/local/bin for binaries and /usr/local/lib for libraries.
What’s LD_LIBRARY_PATH? - It’s an environment variable that lists all the directories which should be searches for libraries before the standard directories are searched.
How do you create a shared library? - Create the object file with -fPIC for position-independent code, then run gcc with -shared option.
How do you install a shared library? - Run ldconfig in the standard directory that it’s installed in.
What does ldd do? - It shows a list of installed shared libraries.
How do you dynamically load a library in your app? - Use dlopen()
What does nm command do? - It reports the list of symbols in a given library.