El enlazador (linker) agrupa los
módulos objeto (que a menudo tienen extensiones como
.o
ó .obj
), generados
por el compilador, en un programa ejecutable que el sistema
operativo puede cargar y ejecutar. Es la última fase del proceso
de compilación.
Las características del enlazador varían de un sistema a otro. En general, simplemente se indican al enlazador los nombres de los módulos objeto, las librerías que se desean enlazar y el nombre del ejecutable de salida. Algunos sistemas requieren que sea el programador el que invoque al enlazador, aunque en la mayoría de los paquetes de C++ se llama al enlazador a través del compilador. En muchas situaciones, de manera transparente.
Algunos enlazadores antiguos no buscaban ficheros objeto más de una vez y buscaban en la lista que se les pasaba de izquierda a derecha. Esto significa que el orden de los ficheros objeto y las librerías puede ser importante. Si se encuentra con algún problema misterioso que no aparece hasta el proceso de enlazado, una posible razón es el orden en el que se indican los ficheros al enlazador.