CL invoca el vinculador
CL invoca automáticamente el enlazador después de compilar, a no ser que se use la opción /c. CL pasa al enlazador los nombres de los archivos .obj creados durante la compilación y los nombres de cualquier otro archivo especificado en la línea de comandos. El enlazador usa las opciones enumeradas en la variable de entorno LINK. Puede usar la opción /link para especificar las opciones del enlazador en la línea de comandos CL. Las opciones que siguen a la opción /link invalidan las de la variable de entorno LINK. Las opciones de la siguiente tabla suprimen la vinculación.
Opción | Descripción |
---|---|
/c | Compilación sin vinculación |
/E, /EP, /P | Preprocesamiento sin compilación ni vinculación |
/Zg | Generar prototipos de función |
/Zs | Comprobar la sintaxis |
Para obtener más información sobre la vinculación, consulte Opciones del enlazador de MSVC.
Ejemplo
Supongamos que está compilando tres archivos de código fuente de C: MAIN.c, MOD1.c y MOD2.c. Cada archivo incluye una llamada a una función definida en un archivo diferente:
MAIN.c llama a la función
func1
en MOD1.c y a la funciónfunc2
en MOD2.c.MOD1.c llama a las funciones de biblioteca estándar
printf_s
yscanf_s
.MOD2.c llama a funciones gráficas denominadas
myline
ymycircle
, que se definen en una biblioteca denominada MYGRAPH.lib.
Para compilar este programa, compile con la siguiente línea de comandos:
CL MAIN.c MOD1.C MOD2.C MYGRAPH.lib
CL compila primero los archivos de código fuente de C y crea los archivos objeto MAIN.obj, MOD1.obj y MOD2.obj. El compilador coloca el nombre de la biblioteca estándar en cada archivo .obj. Para obtener más información, consulte Uso de biblioteca en tiempo de ejecución.
CL pasa los nombres de los archivos .obj, junto con el nombre MYGRAPH.lib, al enlazador. El enlazador resuelve las referencias externas como se indica a continuación:
En MAIN.obj, la referencia a
func1
se resuelve mediante la definición en MOD1.obj; la referencia afunc2
se resuelve mediante la definición en MOD2.obj.En MOD1.obj, las referencias a
printf_s
yscanf_s
se resuelven mediante las definiciones de la biblioteca que el enlazador encuentra nombrada dentro de MOD1.obj.En MOD2.obj, las referencias a
myline
ymycircle
se resuelven mediante las definiciones de MYGRAPH.lib.
Consulte también
Opciones del compilador de MSVC
Establecer las opciones del compilador