Share via


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ón func2 en MOD2.c.

  • MOD1.c llama a las funciones de biblioteca estándar printf_s y scanf_s.

  • MOD2.c llama a funciones gráficas denominadas myline y mycircle, 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:

  1. En MAIN.obj, la referencia a func1 se resuelve mediante la definición en MOD1.obj; la referencia a func2 se resuelve mediante la definición en MOD2.obj.

  2. En MOD1.obj, las referencias a printf_s y scanf_s se resuelven mediante las definiciones de la biblioteca que el enlazador encuentra nombrada dentro de MOD1.obj.

  3. En MOD2.obj, las referencias a myline y mycircle se resuelven mediante las definiciones de MYGRAPH.lib.

Consulte también

Opciones del compilador de MSVC
Establecer las opciones del compilador