As far my understanding, when I compile my C source code GCC/LD does the address binding at compile time. Typically this address starts at zero. When I call a function from shared library how the compiler knows the address of shared library in advance? I know shared libraries gets their address at load time. Please correct me if I am wrong.
How process know address of shared library?
linux;kernel;dynamic linking;shared library