<span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "><div><span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "><br>
</span></div>Hi All,<div><br></div><div>I have few doubts regarding static and shared (dynamic) libraries linking. Can anybody please clarify it.</div><div><div><div><br></div><div>There are two kinds of libraries - static libary(.a file) and shared library (.so file). </div>
<div>Also there are two types of library linkages static linkage and dynamic linkage.</div><div><br></div><div>So Static library can be linked to an executable in either ways (Statically and dynamically).</div><div>in the same way shared libraries can be linked to executable in both the ways (Statically and dynamically).</div>
<div><br></div><div>Here my doubt is what is the use if we statically linked the shared library to the executable binary </div><div>(by this way the shared library is part of the executable) and what is the point in calling it as shared libary if it can be linked statically to the executable file.</div>
<div><br></div><div><br></div><div>If we linked the shared library to the executable file using dynamic linkage, executable file will pick the library at run time.</div><div>Here my doubt is to pick up the library at run time who will load the library into the memory and how will the executable know about the address of the function in the library to invoke the function.</div>
</div></div><div><br></div><div>Thanks in advance,</div><div>Leela krishna.</div></span>