O vinculador de Invokes CL
CL automaticamente invoca 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 do LINK.Você pode usar a opção /link para especificar as opções de vinculador na linha de comando CL.Opções que o seguem a opção /link substituirão as a variável de ambiente do LINK.As opções na tabela a seguir suprimir a vinculação.
Opção |
Descrição |
---|---|
/c |
Compilar sem vinculação |
/ /P /EP, E, |
Pré-processar sem compilar ou vincular |
/Zg |
Gerar protótipos de função |
/Zs |
Verificar sintaxe |
Para obter mais detalhes sobre como vincular, consulte Opções do vinculador.
Exemplo
Suponha que você está compilando arquivos de fonte três CS: MAIN.c, MOD1.c e MOD2.c.Cada arquivo inclui uma telefonar para uma função definida em um arquivo diferente:
MAIN.c chama a função func1 em MOD1.c e a função func2 em MOD2.c.
MOD1.c chamadas a funções de biblioteca padrão de printf_s e scanf_s.
MOD2.c chama funções gráficas chamadas myline e mycircle, que são definidos em uma biblioteca denominada MYGRAPH.lib.
Para criar este programa, a compilar com a seguinte linha de comando:
CL MAIN.c MOD1.C MOD2.C MYGRAPH.lib
CL primeiro compila os arquivos de código-fonte 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, consulte Usar a biblioteca de time de execução.
CL passa os nomes dos arquivos .obj, juntamente com o nome MYGRAPH.lib, para o vinculador.O vinculador resolve referências externas da seguinte maneira:
Em MAIN.obj, a referência func1 é resolvido usando a definição em MOD1.obj; a referência para func2 é resolvido usando a definição em MOD2.obj.
Em MOD1.obj, as referências a printf_s e scanf_s são resolvidos usando as definições na biblioteca que o vinculador localiza denominado dentro MOD1.obj.
Em MOD2.obj, as referências a myline e mycircle são resolvidos usando as definições no MYGRAPH.lib.