2.2.2 连接

连接器把由编译器生成的目标模块(一般是带“.o”或“.obj”扩展名的文件)连接成为操作系统可以加载和执行的程序。它是编译过程的最后阶段。

连接器的特性随系统不同而不同。通常,只需告诉连接器目标模块和要连接的库的名称,及可执行程序的名称,连接器就可以开始执行连接任务了。一些系统要求用户自己调用连接器。很多C++软件包可以让用户通过C++编译器来调用连接器。多数情况下,连接器的调用是不可见的。

某些早期的连接器对目标文件和库文件只查找一次,这些连接器从左到右查找一遍所给的目标文件和库文件列表。因此目标文件和库文件的顺序就特别重要。如果连接的时候遇到一些莫名其妙的问题,就有可能与给定连接器的文件顺序有关。