1.静态链接:将各个模块链接成一个完整的装配模块,在链接之间每个模块的指令以及数据分别是从0-M进行编址,比如第一个模块长度为M,第二个模块的长度为,链接前两个模块的地址分别为0-M,0-N,但是链接后会将两个模块的地址进行修改,变成0-M+N。
2.装入时动态链接:编译后得到的一组模块先不链接成一个完整的装配模块,而是将这件事情推迟,在将每个模块装入内存时才做,每个模块边装入然后边链接,链接就是将各组模块的相对地址重新编址,而装入是实现逻辑地址到物理地址的转换,将程序模块在内存中找到一个地方进行存放,然后可以通过逻辑地址进行访问内存的物理地址。
3.运行时动态链接:对于程序的有些模块可能在程序的运行期间根本不会使用,如果将这些模块也一同链接装入内存,这样会导致浪费内存空间以及延长装入时间,而运行时动态链接是在程序执行中需要该模块时才进行链接的,如果不需要某个模块,这个模块时不会被调入内存和链接到装入模块的。