Compartilhar via


O CL invoca o vinculador

O CL invocará automaticamente o vinculador após a compilação, a menos que a opção /c seja usada. CL passa para o vinculador os nomes dos arquivos .obj criados durante a compilação e os nomes de quaisquer outros arquivos especificados na linha de comando. O vinculador usa as opções listadas na variável de ambiente LINK. Você pode usar a opção /link para especificar opções de vinculador na linha de comando do CL. As opções após /link substituem as opções na variável de ambiente LINK. As opções na tabela a seguir suprimem a vinculação.

Opção Descrição
/c Compilar sem vinculação
/E, /EP, /P Pré-processar sem compilação ou vinculação
/Zg Gerar protótipos de função
/Zs Verificar sintaxe

Para obter mais detalhes sobre vinculação, confira Opções do vinculador do MSVC.

Exemplo

Suponha que você esteja compilando três arquivos de origem C: MAIN.c, MOD1.c e MOD2.c. Cada arquivo inclui uma chamada para uma função definida em um arquivo diferente:

  • MAIN.c chama a função func1 no MOD1.c e a função func2 no MOD2.c.

  • MOD1.c chama as funções printf_s e scanf_s da biblioteca padrão.

  • MOD2.c chama funções gráficas nomeadas myline e mycircle, que são definidas em uma biblioteca chamada MYGRAPH.lib.

Para criar esse programa, compile com a seguinte linha de comando:

CL MAIN.c MOD1.C MOD2.C MYGRAPH.lib

CL primeiro compila os arquivos de origem C e cria os arquivos de objeto MAIN.obj, MOD1.obj e MOD2.obj. O compilador coloca o nome da biblioteca padrão em cada arquivo .obj. Para obter mais detalhes, confira Usar biblioteca de runtime.

CL passa os nomes dos arquivos .obj, juntamente com o nome MYGRAPH.lib, para o vinculador. O vinculador resolve as referências externas da seguinte maneira:

  1. Em MAIN.obj, a referência a func1 é resolvida usando a definição em MOD1.obj; a referência a func2 é resolvida usando a definição em MOD2.obj.

  2. Em MOD1.obj, as referências a printf_s e scanf_s são resolvidas usando as definições na biblioteca que o vinculador encontra nomeadas em MOD1.obj.

  3. Em MOD2.obj, as referências a myline e mycircle são resolvidas usando as definições em MYGRAPH.lib.

Confira também

Opções do compilador MSVC
Definindo opções do compilador