Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Em um projeto C++, a etapa de vinculação é executada depois que o compilador compila o código-fonte em arquivos de objeto (*.obj). O vinculador (link.exe) combina os arquivos de objeto em um único arquivo executável.
As opções do vinculador podem ser definidas dentro ou fora do Visual Studio. No Visual Studio, você acessa as opções do vinculador clicando com o botão direito do mouse em um nó do projeto no Gerenciador de Soluções e escolhendo Propriedades para exibir as páginas de propriedades. Escolha Vinculador no painel esquerdo para expandir o nó e ver todas as opções.
Sintaxe da linha de comando do vinculador
Quando você executa o vinculador fora do Visual Studio, você pode especificar a entrada de uma ou mais maneiras:
- Na linha de comando
- Usando arquivos de comando
- Em variáveis de ambiente
O vinculador primeiro processa as LINK opções especificadas na variável de ambiente, seguidas pelas opções na ordem em que são especificadas na linha de comando e nos arquivos de comando. Se uma opção for repetida com argumentos diferentes, a última opção processada terá precedência.
As opções aplicam-se a toda a compilação; Nenhuma opção pode ser aplicada a arquivos de entrada específicos.
Para executar link.exeo , use a seguinte sintaxe de comando:
link arguments
As arguments opções de inclusão e nomes de arquivo podem ser especificados em qualquer ordem. As opções são processadas primeiro e, em seguida, os arquivos. Use um ou mais espaços ou guias para separar argumentos.
Observação
Você pode iniciar essa ferramenta somente no prompt de comando do Visual Studio. Não é possível iniciá-lo a partir de um prompt de comando do sistema ou do Explorador de Arquivos.
Linha de comandos
Na linha de comando, uma opção consiste em um especificador de opção, um traço (-) ou uma barra (/), seguido pelo nome da opção. Os nomes das opções não podem ser abreviados. Algumas opções usam um argumento, especificado após dois pontos (:). Nenhum espaço ou tabulação é permitido dentro de uma especificação de opção, exceto dentro de uma cadeia de caracteres entre aspas na /COMMENT opção. Especifique argumentos numéricos em notação decimal ou em linguagem C. Os nomes das opções e seus argumentos de palavra-chave ou nome de arquivo não diferenciam maiúsculas de minúsculas, mas os identificadores como argumentos diferenciam maiúsculas de minúsculas.
Para passar um arquivo para o vinculador, especifique o nome do arquivo na linha de comando após o link.exe comando. Você pode especificar um caminho absoluto ou relativo com o nome do arquivo e pode usar curingas no nome do arquivo. Se você omitir o ponto (.) e a extensão do nome do arquivo, o vinculador assumirá uma extensão de .obj para localizar o arquivo. O vinculador não usa extensões de nome de arquivo ou a falta delas para fazer suposições sobre o conteúdo dos arquivos. Determina o tipo de ficheiro examinando-o e processa-o em conformidade.
Observação
Vários sinalizadores de vinculador usam um nome de arquivo. Se você especificar um caminho relativo ou um caminho absoluto, se o nome de arquivo totalmente qualificado exceder MAX_PATH (260 caracteres), o vinculador poderá falhar, especialmente durante a pesquisa de bibliotecas. Se você encontrar esse problema, tente usar um caminho mais curto.
O vinculador retorna zero para êxito (sem erros). Caso contrário, ele retorna o número do erro que interrompeu o link. Por exemplo, se o vinculador gerar LNK1104, o vinculador retornará 1104. Assim, o menor número de erro retornado em um erro pelo vinculador é 1000. Um valor de retorno de 128 representa um problema de configuração com o sistema operacional ou um arquivo .config; o carregador não carregou nem link.exec2.dll.
Arquivos de comando do vinculador
Você pode passar argumentos de linha de comando para link.exe na forma de um arquivo de comando. Para especificar um arquivo de comando para o vinculador, use a seguinte sintaxe:
link @commandfile
O commandfile é o nome de um arquivo de texto. Não é permitido espaço ou tabulação entre o sinal de arroba (@) e o nome do arquivo. Não há extensão padrão; Você deve especificar o nome do arquivo completo, incluindo qualquer extensão. Curingas não podem ser usados. Você pode especificar um caminho absoluto ou relativo com o nome do arquivo. Não deve exceder MAX_PATH (260 caracteres). O vinculador não usa uma variável de ambiente para procurar o arquivo.
No arquivo de comando, os argumentos são separados por espaços ou guias (como na linha de comando) e por caracteres de nova linha.
Você pode especificar toda ou parte da linha de comando em um arquivo de comando. Você pode usar mais de um arquivo de comando em um link.exe comando. O vinculador aceita a entrada do arquivo de comando como se fosse especificada nesse local na linha de comando. Os arquivos de comando não podem ser aninhados. O vinculador ecoa o conteúdo dos arquivos de comando, a menos que /NOLOGO seja especificado.
Example
O comando a seguir cria uma DLL. Ele passa os nomes de arquivos de objeto e bibliotecas em arquivos de comando separados e usa um terceiro arquivo de comando para especificação da /EXPORTS opção:
link /dll @objlist.txt @liblist.txt @exports.txt
Variáveis de ambiente LINK
O vinculador reconhece as seguintes variáveis de ambiente:
-
LINKe_LINK_, se definido. O vinculador precede as opções e argumentos definidos naLINKvariável de ambiente e acrescenta as opções e argumentos definidos na_LINK_variável de ambiente aos argumentos de linha de comando antes do processamento. -
LIB, se definido. O vinculador usa oLIBcaminho quando procura um objeto, biblioteca ou outro arquivo especificado na linha de comando ou pela/BASEopção. Ele também usa oLIBcaminho para localizar um.pdbarquivo nomeado em um objeto. ALIBvariável pode conter uma ou mais especificações de caminho, separadas por ponto-e-vírgula. Um caminho deve apontar para o\libsubdiretório da instalação do Microsoft C++. -
PATH, se a ferramenta precisar ser executadaCVTRESe não conseguir encontrar o arquivo no mesmo diretório quelink.exeela.link.exe( requerCVTRESvincular um.resarquivo.)PATHdeve apontar para o\binsubdiretório de sua instalação do Microsoft C++. -
TMP, para especificar um diretório ao vincular OMF ou.resarquivos.
Consulte também
Referência de construção C/C++
Opções do vinculador MSVC
ArquivosModule-Definition (.def)
Suporte de vinculador para Delay-Loaded DLLs