Partilhar via


Páginas de propriedades do vinculador

As propriedades a seguir são encontradas em Project>Properties>Configuration Properties>Linker. Para obter mais informações sobre o vinculador, consulte CL invoca as opções do vinculador e do vinculador.

Página Geral de Propriedades

Arquivo de saída

A /OUT opção substitui o nome padrão e o local do programa que o vinculador cria.

Mostrar progresso

Imprime mensagens de progresso do vinculador

Escolhas

  • Não definido - Sem verbosidade.
  • Exibir todas as mensagens de progresso - Exibe todas as mensagens de progresso.
  • Para bibliotecas pesquisadas - Exibe mensagens de progresso indicando apenas as bibliotecas pesquisadas.
  • Sobre a dobragem COMDAT durante a vinculação otimizada - Exibe informações sobre a dobragem COMDAT durante a vinculação otimizada.
  • Sobre os dados removidos durante a vinculação otimizada - Exibe informações sobre funções e dados removidos durante a vinculação otimizada.
  • Sobre módulos incompatíveis com SEH - Exibe informações sobre módulos incompatíveis com o Safe Exception Handling.
  • Sobre a atividade do vinculador relacionada ao código gerenciado - Exibe informações sobre a atividade do vinculador relacionada ao código gerenciado.

Versão

A /VERSION opção indica ao vinculador para colocar um número de versão no cabeçalho do .exe ficheiro ou .dll. Use DUMPBIN /HEADERS para ver o campo de versão da imagem do OPTIONAL HEADER VALUES e observar o efeito de /VERSION.

Habilitar vinculação incremental

Permite a vinculação incremental. (/INCREMENTAL, /INCREMENTAL:NO)

Suprimir banner de inicialização

A /NOLOGO opção impede a exibição da mensagem de direitos autorais e do número da versão.

Ignorar biblioteca de importação

Esta propriedade diz ao vinculador para não vincular nenhuma .lib saída gerada a partir dessa compilação em qualquer projeto dependente. Permite ao sistema de projeto lidar com .dll arquivos que não produzem um .lib arquivo quando construídos. Se um projeto depende de outro projeto que produz uma DLL, o sistema de projeto vincula automaticamente o .lib arquivo produzido por esse projeto filho. Essa propriedade pode ser desnecessária em projetos que produzem DLLs COM ou DLLs apenas de recursos, porque essas DLLs não têm exportações relevantes. Se uma DLL não tiver exportações, o vinculador não gerará um .lib arquivo. Se nenhum arquivo de exportação .lib estiver presente e o sistema de projeto disser ao vinculador para vincular com a DLL ausente, o link falhará. Use a propriedade Ignore Import Library para resolver esse problema. Quando definido como Sim, o sistema de projeto ignora a presença ou ausência do .lib arquivo e faz com que qualquer projeto que dependa desse projeto não se vincule ao arquivo inexistente .lib .

Para aceder programaticamente a esta propriedade, consulte IgnoreImportLibrary.

Registrar saída

Executa regsvr32.exe /s $(TargetPath) sobre a saída de build, que é válida apenas para projetos .dll. Em .exe projetos, esta propriedade é ignorada. Para registrar uma .exe saída, defina um evento pós-construção na configuração para realizar o registro personalizado exigido sempre para arquivos registrados .exe.

Para aceder programaticamente a esta propriedade, consulte RegisterOutput.

Redirecionamento por usuário

O registro no Visual Studio tem sido tradicionalmente feito em HKEY_CLASSES_ROOT (HKCR). Com o Windows Vista e sistemas operacionais posteriores, para acessar o HKCR você deve executar o Visual Studio no modo elevado. Os desenvolvedores nem sempre querem executar no modo elevado, mas ainda precisam lidar com o registo. O redirecionamento por usuário permite que você se registre sem ter que executar no modo elevado.

O redirecionamento por usuário força qualquer gravação no HKCR a ser redirecionada para HKEY_CURRENT_USER (HKCU). Se o redirecionamento por usuário estiver desativado, isso pode causar Erro de Compilação do Projeto PRJ0050 quando o programa tenta gravar no HKCR.

Diretórios de bibliotecas adicionais

Permite que o usuário substitua o caminho da biblioteca do ambiente. (/LIBPATH:folder)

Especifica se os .lib arquivos produzidos por projetos dependentes devem ser vinculados. Normalmente, você deseja vincular os .lib arquivos, mas pode não ser o caso de determinadas DLLs.

Você também pode especificar um .obj arquivo fornecendo o nome do arquivo e o caminho relativo, por exemplo, ..\..\MyLibProject\MyObjFile.obj. Se o código-fonte do .obj arquivo tiver um #include cabeçalho pré-compilado, por exemplo, pch.h, o pch.obj arquivo estará localizado na mesma pasta que MyObjFile.obj. Você também deve adicionar pch.obj como uma dependência adicional.

Usar entradas de dependência de biblioteca

Especifica se as entradas para a ferramenta de biblioteca, em vez do próprio arquivo de biblioteca, devem ser usadas ao ligar às saídas de biblioteca das dependências do projeto. Em um projeto grande, quando um projeto dependente produz um .lib arquivo, a vinculação incremental é desabilitada. Se houver muitos projetos dependentes que produzem .lib arquivos, a criação do aplicativo pode levar muito tempo. Quando essa propriedade é definida como Sim, o sistema de projeto liga os ficheiros .obj aos ficheiros .lib produzidos por projetos dependentes, permitindo a ligação incremental.

Para obter informações sobre como acessar a página de propriedades Geral do vinculador, consulte Definir propriedades do compilador e da compilação.

Especifica se o vinculador deve exibir um indicador de progresso mostrando qual porcentagem do link está concluída. O padrão é não exibir essas informações de status. (/LTCG:STATUS|LTCG:NOSTATUS)

Impedir ligação de DLL

/ALLOWBIND:NO define um bit no cabeçalho de uma DLL que indica a Bind.exe de que a vinculação da imagem não é permitida. Talvez você não queira que uma DLL seja vinculada se tiver sido assinada digitalmente (a vinculação invalida a assinatura).

Tratar o aviso do vinculador como erros

/WX faz com que nenhum arquivo de saída seja gerado se o vinculador gerar um aviso.

Forçar saída de arquivo

A /FORCE opção informa ao vinculador para criar um .exe arquivo ou DLL, mesmo que um símbolo seja referenciado, mas não definido (UNRESOLVED), ou seja definido várias vezes (MULTIPLE). Ele pode criar um arquivo inválido .exe .

Escolhas

  • Ativado - /FORCE sem argumentos implica /FORCE:MULTIPLE e /FORCE:UNRESOLVED.
  • Multiplicar somente símbolo definido - Use /FORCE:MULTIPLE para criar um arquivo de saída, mesmo que LINK encontre mais de uma definição para um símbolo.
  • Somente símbolo indefinido - Use /FORCE:UNRESOLVED para criar um arquivo de saída independentemente de LINK encontrar ou não um símbolo indefinido. /FORCE:UNRESOLVED é ignorado se o símbolo do ponto de entrada não estiver resolvido.

Criar imagem Hot Patchable

Prepara uma imagem para remendo em tempo real.

Escolhas

  • Ativado - Prepara uma imagem para hot patching.
  • Somente imagem X86 - Prepara uma imagem X86 para aplicação de correções rápidas.
  • Somente imagem X64 - Prepara uma imagem X64 para hot patching.
  • Somente imagem Itanium - Prepara uma imagem Itanium para hot patching.

Especificar atributos de seção

A /SECTION opção altera os atributos de uma seção, substituindo os atributos definidos quando o .obj arquivo para a seção foi compilado.

Página de propriedades de entrada

Dependências adicionais

Especifica itens de dependência extra a serem adicionados à linha de comando do link, por exemplo kernel32.lib.

Ignorar todas as bibliotecas padrão

A /NODEFAULTLIB opção instrui o vinculador a remover uma ou mais bibliotecas predefinidas da lista de bibliotecas que ele pesquisa ao resolver referências externas.

Ignorar bibliotecas padrão específicas

Especifica um ou mais nomes de bibliotecas padrão a serem ignorados. Separe várias bibliotecas com ponto e vírgula. (/NODEFAULTLIB:[name, name, ...])

Arquivo de definição de módulo

A /DEF opção passa um arquivo de definição de módulo (.def) para o vinculador. Apenas um .def arquivo pode ser especificado para LINK.

Adicionar módulo ao conjunto

A /ASSEMBLYMODULE opção permite adicionar uma referência de módulo a um assembly. As informações de tipo no módulo não estarão disponíveis para o programa de montagem que adicionou a referência do módulo. No entanto, as informações de tipo no módulo estarão disponíveis para qualquer programa que faça referência à montagem.

Incorporar arquivo de recurso gerenciado

/ASSEMBLYRESOURCE Incorpora um arquivo de recurso no arquivo de saída.

Referências de símbolos de força

A /INCLUDE opção diz ao vinculador para adicionar um símbolo especificado à tabela de símbolos.

Atrasar DLLs carregadas

A /DELAYLOAD opção causa atraso no carregamento de DLLs. O nome da dll especifica uma DLL para atrasar o carregamento.

A /ASSEMBLYLINKRESOURCE opção cria um link para um recurso do .NET Framework no arquivo de saída. O vinculador não coloca o arquivo de recurso no arquivo de saída.

Página de propriedades do arquivo de manifesto

Gerar manifesto

/MANIFEST Especifica que o vinculador deve criar um arquivo de manifesto lado a lado.

Arquivo de manifesto

/MANIFESTFILE Permite alterar o nome padrão do arquivo de manifesto. O nome padrão do arquivo de manifesto é o nome do arquivo com .manifest anexado.

Dependências de manifesto adicionais

/MANIFESTDEPENDENCY permite especificar atributos que são colocados na seção de dependência do arquivo de manifesto.

Permitir isolamento

Especifica o comportamento para pesquisa de manifesto. (/ALLOWISOLATION:NO)

Habilitar o Controle de Conta de Usuário (UAC)

Especifica se o Controle de Conta de Usuário está habilitado ou não. (/MANIFESTUAC, /MANIFESTUAC:NO)

Nível de execução do UAC

Especifica o nível de execução solicitado para o aplicativo ao ser executado com o Controle de Conta de Usuário. (/MANIFESTUAC:level=[value])

Escolhas

  • asInvoker - Nível de execução do UAC: como invocador.
  • disponível mais alto - Nível de Execução UAC: disponível mais alto.
  • requireAdministrator - Nível de Execução do UAC: requer administrador.

Proteção de Interface de Usuário de Bypass do UAC

Especifica se os níveis de proteção da interface do usuário devem ou não ser ignorados para outras janelas na área de trabalho. Defina esta propriedade como 'Sim' apenas para aplicações de acessibilidade. (/MANIFESTUAC:uiAccess=[true | false])

Página de propriedades de depuração

Gerar informações de depuração

Esta opção permite a criação de informações de depuração para o .exe arquivo ou a DLL.

Escolhas

  • Não - Não gera informações de depuração.
  • Gerar informações de depuração - Crie um banco de dados de programas (PDB) completo ideal para distribuição ao Microsoft Symbol Server.
  • Gerar informações de depuração otimizadas para links mais rápidos - Produz um banco de dados de programas (PDB) ideal para um ciclo rápido de edição-link-depuração.
  • Gerar informações de depuração otimizadas para compartilhamento e publicação - Produz um banco de dados de programa (PDB) ideal para um ciclo de edição-link-depuração compartilhado.

Gerar arquivo de banco de dados do programa

Por padrão, quando /DEBUG é especificado, o vinculador cria um banco de dados de programa (PDB) que contém informações de depuração. O nome de ficheiro predefinido para o PDB tem o nome base do programa e da extensão .pdb.

Remover símbolos privados

A /PDBSTRIPPED opção cria um segundo arquivo de banco de dados de programa (PDB) quando você cria a imagem do programa com qualquer uma das opções de compilador ou vinculador que geram um arquivo PDB (/DEBUG, /Z7, /Zd, ou /Zi).

Gerar arquivo de mapa

A /MAP opção diz ao vinculador para criar um mapfile.

Nome do arquivo do mapa

Um nome especificado pelo usuário para o mapfile. Ele substitui o nome padrão.

Exportação de Mapas

A opção /MAPINFO instrui o ligador a incluir as informações especificadas em um ficheiro mapa, que é criado se você especificar a opção /MAP. EXPORTS Diz ao vinculador para incluir funções exportadas.

Montagem depurável

/ASSEMBLYDEBUG emite o atributo DebuggableAttribute juntamente com o rastreamento de informações de depuração e desativa as otimizações JIT.

Página de propriedades do sistema

Subsistema

A /SUBSYSTEM opção informa ao sistema operacional como executar o .exe arquivo. A escolha do subsistema afeta o símbolo de ponto de entrada (ou função de ponto de entrada) que o vinculador escolherá.

Escolhas

  • Não definido - Nenhum conjunto de subsistemas.
  • Console - Aplicativo de modo de caractere Win32. Os aplicativos de console recebem um console pelo sistema operacional. Se main ou wmain está definido, CONSOLE é o padrão.
  • Windows - O aplicativo não requer um console, provavelmente porque cria suas próprias janelas para interação com o usuário. Se WinMain ou wWinMain está definido, WINDOWS é o padrão.
  • Nativo - Controladores de dispositivo para Windows NT. Se /DRIVER:WDM for especificado, NATIVE é o padrão.
  • Aplicação EFI - Aplicação EFI.
  • Driver de serviço de inicialização EFI - Driver de serviço de inicialização EFI.
  • ROM EFI - ROM EFI.
  • EFI Runtime - Tempo de execução EFI.
  • POSIX - Aplicação que é executada com o subsistema POSIX no Windows NT.

Versão mínima necessária

Especifique a versão mínima necessária do subsistema. Os argumentos são números decimais no intervalo de 0 a 65535.

Tamanho da reserva da pilha

Especifica o tamanho total de alocação do heap na memória virtual. O padrão é 1 MB. (/HEAP:reserve)

Tamanho de confirmação do heap

Especifica o tamanho total de alocação do heap na memória física. O padrão é 4 KB. (/HEAP:reserve,commit)

Tamanho da reserva de pilha

Especifica o tamanho total de alocação de pilha na memória virtual. O padrão é 1 MB. (/STACK:reserve)

Tamanho de alocação de pilha

Especifica o tamanho total de alocação de pilha na memória física. O padrão é 4 KB. (/STACK:reserve,commit)

Ativar endereços grandes

A /LARGEADDRESSAWARE opção informa ao vinculador que o aplicativo pode lidar com endereços maiores que 2 gigabytes. Por padrão, /LARGEADDRESSAWARE:NO é habilitado se /LARGEADDRESSAWARE não for especificado de outra forma na linha do vinculador.

Servidor de Terminal

A /TSAWARE opção define uma flag no campo IMAGE_OPTIONAL_HEADERDllCharacteristics no cabeçalho opcional da imagem do programa. Quando esse sinalizador é definido, o Terminal Server não fará determinadas alterações no aplicativo.

Alternar execução de CD

A opção /SWAPRUN instrui o sistema operativo a primeiro copiar a saída do vinculador para um ficheiro de troca e, em seguida, executar a imagem a partir daí. Esta opção é um recurso do Windows NT 4.0 (e posterior). Quando CD for especificado, o sistema operacional copiará a imagem em um disco removível para um arquivo de paginação e a carregará.

Alternar Execução desde a Rede

A opção /SWAPRUN instrui o sistema operativo a primeiro copiar a saída do vinculador para um ficheiro de troca e, em seguida, executar a imagem a partir daí. Esta opção é um recurso do Windows NT 4.0 (e posterior). Se NET for especificado, o sistema operacional primeiro copiará a imagem binária da rede para um arquivo de permuta e a carregará a partir daí. Esta opção é útil para executar aplicações através da rede.

Motorista

Utilize a opção do linker /DRIVER para criar um driver de modo kernel do Windows NT.

Escolhas

  • Não definido - Configuração de driver padrão.
  • Motorista - Motorista
  • Apenas UP - /DRIVER:UPONLY faz com que o vinculador adicione o IMAGE_FILE_UP_SYSTEM_ONLY bit às características no cabeçalho de saída para especificar que é um driver de uniprocessador (UP). O sistema operacional se recusará a carregar um driver UP em um sistema multiprocessador (MP).
  • WDM - /DRIVER:WDM faz com que o vinculador configure o bit IMAGE_DLLCHARACTERISTICS_WDM_DRIVER no campo do cabeçalho opcional DllCharacteristics.

Página de propriedades de otimização

Referências

/OPT:REF elimina funções e/ou dados que nunca são referenciados, enquanto /OPT:NOREF mantém funções e/ou dados que nunca são referenciados.

Ativar Folding COMDAT

Utilize /OPT:ICF[=iterations] para realizar dobragem idêntica de COMDAT.

Ordem das funções

A opção /ORDER diz ao LINK para otimizar o seu programa, colocando certos COMDATs na imagem em uma ordem predeterminada. LINK coloca as funções na ordem especificada dentro de cada seção na imagem.

Base de Dados Guiada por Perfil

Especifique o ficheiro .pgd para otimizações guiadas por perfil. (/PGD)

Especifica a geração de código de tempo de link. (/LTCG)

Escolhas

  • Padrão - Configuração LTCG padrão.
  • Utilize a Geração de Código no Tempo de Link Rápida - Utilize a Geração de Código no Tempo de Link com /FASTGENPROFILE.
  • Use a geração de código durante a vinculação - use a geração de código durante a vinculação.
  • Otimização guiada por perfil - Instrumento - Use otimização guiada por perfil com :PGINSTRUMENT.
  • Otimização guiada por perfil - Otimização - Especifica que o vinculador deve usar os dados de perfil criados após a execução do binário instrumentado para criar uma imagem otimizada.
  • Otimização Guiada por Perfil - Atualização - Permite e rastreia a lista de arquivos de entrada a serem adicionados ou modificados em relação ao que foi especificado na fase :PGINSTRUMENT.

Página de propriedades IDL incorporadas

Comandos MIDL

Especifique as opções de linha de comando MIDL. (/MIDL:@responsefile)

Ignorar IDL incorporado

A /IGNOREIDL opção especifica que quaisquer atributos IDL no código-fonte não devem ser processados em um .idl arquivo.

Nome do arquivo base IDL mesclado

A /IDLOUT opção especifica o nome e a .idl extensão do arquivo.

Biblioteca de Tipos

A /TLBOUT opção especifica o nome e a .tlb extensão do arquivo.

ID do recurso TypeLib

Permite especificar o ID do recurso da biblioteca de tipos gerada pelo vinculador. (/TLBID:id)

Página de propriedades de metadados do Windows

Gerar metadados do Windows

Habilita ou desabilita a geração de metadados do Windows.

Escolhas

  • Sim - Permitir a geração de arquivos de metadados do Windows.
  • Não - Desative a geração de arquivos de metadados do Windows.

Arquivo de metadados do Windows

O /WINMDFILE interruptor de opção.

Arquivo de chave de metadados do Windows

Especifique uma chave ou par de chaves para assinar os metadados do Windows. (/WINMDKEYFILE:filename)

Contêiner de chave de metadados do Windows

Especifique um contêiner de chave para assinar os metadados do Windows. (/WINMDKEYCONTAINER:name)

Sinal de atraso de metadados do Windows

Assine parcialmente os metadados do Windows. Use /WINMDDELAYSIGN se quiser colocar apenas a chave pública nos metadados do Windows. A predefinição é /WINMDDELAYSIGN:NO.

Página de propriedades avançadas

Ponto de entrada

A /ENTRY opção especifica uma função de ponto de entrada como o endereço inicial para um .exe arquivo ou DLL.

Sem ponto de entrada

É necessária a opção /NOENTRY para criar uma DLL somente de recurso. Use esta opção para evitar que o LINK vincule uma referência à DLL _main.

Definir soma de verificação

A /RELEASE opção define a Soma de verificação no cabeçalho de um .exe arquivo.

Endereço Base

Define um endereço base para o programa. (/BASE:{address[,size] | @filename,key})

Endereço base aleatorizado

Endereço Base Aleatorizado. (/DYNAMICBASE[:NO])

Endereço base fixo

Cria um programa que pode ser carregado somente em seu endereço base preferido. (/FIXED[:NO])

Prevenção de Execução de Dados (DEP)

Marca um executável como tendo sido testado para ser compatível com o recurso de Prevenção de Execução de Dados do Windows. (/NXCOMPAT[:NO])

Desativar a geração de montagem

A /NOASSEMBLY opção diz ao vinculador para criar uma imagem para o arquivo de saída atual sem um assembly do .NET Framework.

Descarregar DLL carregada com atraso

O qualificador UNLOAD indica à função auxiliar de atraso de carregamento para suportar o descarregamento explícito da DLL. (/DELAY:UNLOAD)

Nobind DLL de carregamento adiado

O NOBIND qualificador diz ao vinculador para não incluir uma Tabela de Endereços de Importação (IAT) vinculável na imagem final. O padrão é criar o IAT vinculável para DLLs com carregamento adiado. (/DELAY:NOBIND)

Importar biblioteca

Substitui o nome padrão da biblioteca de importação. (/IMPLIB:filename)

Mesclar seções

A /MERGE opção combina a primeira seção com a segunda seção e dá à seção resultante o nome da segunda seção. Por exemplo, /merge:.rdata=.text mescla a .rdata seção com a .text seção e nomeia a seção .textcombinada .

Máquina alvo

A /MACHINE opção especifica a plataforma de destino para o programa.

Escolhas

  • Não definido
  • MáquinaARM
  • MáquinaARM64
  • MáquinaEBC
  • MáquinaIA64
  • MáquinaMIPS
  • MáquinaMIPS16
  • MáquinaMIPSFPU
  • MáquinaMIPSFPU16
  • MáquinaSH4
  • MáquinaPOLEGAR
  • MáquinaX64
  • MáquinaX86

Perfil

Produz um arquivo de saída que pode ser usado com o criador de perfil Ferramentas de Desempenho. Requer que a propriedade Generate Debug Info seja definida como GenerateDebugInformation (/DEBUG). (/PROFILE)

Atributo de encadeamento CLR

Especifique explicitamente o atributo threading para o ponto de entrada do seu programa CLR.

Escolhas

  • Atributo de threading MTA - Aplica o atributo MTAThreadAttribute ao ponto de entrada do seu programa.
  • Atributo de threading STA - Aplica o atributo STAThreadAttribute ao ponto de entrada do programa.
  • Atributo de threading padrão - O mesmo que não especificar /CLRTHREADATTRIBUTE. Permite que o Common Language Runtime (CLR) defina o atributo de threading padrão.

Tipo de imagem CLR

Define o tipo (IJW, puro ou seguro) de uma imagem CLR.

Escolhas

  • Forçar imagem IJW
  • Imagem Force Pure IL
  • Imagem Force Safe IL
  • Tipo de imagem padrão

Arquivo de chave

Especifique a chave ou o par de chaves para assinar uma assemblagem. (/KEYFILE:filename)

Contentor de chaves

Especifique um contentor de chave para assinar uma assemblagem. (/KEYCONTAINER:name)

Sinal de atraso

Assine parcialmente uma assembleia. Use /DELAYSIGN se quiser colocar apenas a chave pública no assembly. A predefinição é /DELAYSIGN:NO.

Verificação de código não gerenciado CLR

/CLRUNMANAGEDCODECHECK especifica se o vinculador aplicará SuppressUnmanagedCodeSecurityAttribute a chamadas P/Invoke geradas pelo vinculador do código gerido para DLLs nativas.

Relatório de Erros

Permite que você forneça informações de erro interno do compilador (ICE) diretamente para a equipe do Visual Studio C++.

Escolhas

  • PromptImmediately - Avisar imediatamente.
  • Fila para o próximo login - Fila para o próximo login.
  • Enviar Relatório de Erros - Enviar Relatório de Erros.
  • Nenhum relatório de erros - Nenhum relatório de erros.

SeçãoAlinhamento

A /ALIGN opção especifica o alinhamento de cada seção dentro do espaço de endereçamento linear do programa. O argumento number está em bytes e deve ser uma potência de dois.

Preservar o último código de erro para chamadas PInvoke

/CLRSUPPORTLASTERROR, que está ativado por padrão, preserva o último código de erro de funções chamadas através do mecanismo P/Invoke, que permite chamar funções nativas em DLLs, a partir do código compilado com /clr.

Escolhas

  • Ativado - Ativar /CLRSupportLastError.
  • Desativado - Desativar /CLRSupportLastError.
  • Somente DLLs do sistema - Habilite /CLRSupportLastError apenas para DLLs do sistema.

A imagem tem manipuladores de exceção seguros

Quando /SAFESEH for especificado, o vinculador só produzirá uma imagem se também puder produzir uma tabela dos manipuladores de exceção seguros da imagem. Esta tabela especifica para o sistema operacional quais manipuladores de exceção são válidos para a imagem.