CL invoca o vinculador.
CL automaticamente invoca o vinculador após a compilação, a menos que a opção /c é usada. CL passa para o vinculador, os nomes dos arquivos. obj, criados durante a compilação e os nomes de todos os 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 opções de vinculador na linha de comando CL. Opções que se 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.
Option |
Description |
---|---|
/c |
Compilar sem vinculação |
/E, /EP, /P |
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 os arquivos de origem de três 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 em MOD1.c e a função func2 em MOD2.c.
MOD1.c chama as funções de biblioteca padrão printf_s e scanf_s.
MOD2.c chamadas de funções de gráficos chamadas myline e mycircle, que são definidos em uma biblioteca denominada MYGRAPH.lib.
Para criar este programa, compile com a seguinte linha de comando:
CL MAIN.c MOD1.C MOD2.C MYGRAPH.lib
Primeiro, CL 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 Biblioteca de tempo de execução de uso.
CL passa os nomes dos arquivos. obj, juntamente com o nome MYGRAPH.lib, para o vinculador. O vinculador resolve as referências externas, como segue:
No MAIN.obj, a referência a func1 é resolvido com a definição de MOD1.obj; a referência a func2 é resolvido com a definição no MOD2.obj.
No MOD1.obj, as referências a printf_s e scanf_s são resolvidos usando as definições na biblioteca do vinculador localiza chamado dentro de MOD1.obj.
No MOD2.obj, as referências a myline e mycircle são resolvidos usando as definições de MYGRAPH.lib.