I wanted to know in detail about how shared libraries work in relation to a static library.

I am working on creating and linking a shared library (.so). While working with them, many questions arose that I could not find satisfactory answers when I looked for them, so they were asked. The questions about the shared libraries that I have are as follows:

1.) How is a shared library different from a static library? What are the key differences in the way they are created, are they implemented?

2.) In the case of a shared library, at what point are the addresses where a specific function in the shared library will be loaded and launched, set? Who gives these features is load / run addresses?

3.) Will the application associated with the shared library be slower to run than the one associated with the static library?

4.) Do the application executables differ in these two cases?

5.) Is it possible to debug the initial level by entering the functions defined inside the shared library? Is there any thing needed to make these functions visible to the application?

6.) What are the pros and cons of using a particular library?

Thanks.

-AD

+4
source share
1 answer
+1
source

All Articles