I was taught the advantage of shared library over static library is that if I modify library source code, only shared library must be rebuilt whereas both library and program must be rebuilt in case using static library.
Today, I made some change in library and rebuilt the *.so file. However, the program loads new shared library and crash, I have to rebuild the program with new shared library to make it work. So my question is that:
1) How does program load the shared library? Why do I have to build the program again?
2) How about other libraries that depend on modified library, do I have to rebuild them too?