Partilhar via


Páginas de propriedade do vinculador

As propriedades a seguir são encontradas emProjeto>Propriedades>Propriedades de Configuração>Vinculador. Para obter mais informações sobre o vinculador, confira CL invoca o vinculador e Opções de vinculador.

Página de propriedades gerais

Arquivo de saída

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

Mostrar progresso

Imprime mensagens de andamento do vinculador

Opções

  • Não Definido – sem detalhamento.
  • Exibir todas as mensagens de progresso – exibe todas as mensagens de progresso.
  • Para Bibliotecas Pesquisadas – exibe mensagens de progresso que indicam apenas as bibliotecas pesquisadas.
  • Sobre o dobrável COMDAT durante a vinculação otimizada – exibe informações sobre o dobrável 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 Tratamento de Exceção Segura.
  • Sobre a atividade do vinculador relacionada ao código gerenciado – exibir informações sobre a atividade do vinculador relacionada ao código gerenciado.

Versão

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

Habilitar vinculação incremental

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

Suprimir Faixa de Inicialização

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

Ignorar Biblioteca de Importação

Essa propriedade informa ao vinculador para não vincular nenhuma saída .lib gerada a partir dessa construção em qualquer projeto dependente. Ele permite que o sistema do projeto manipule .dll arquivos que não produzem um arquivo .lib quando compilado. Se um projeto depender de outro projeto que produza uma DLL, o sistema do projeto vinculará automaticamente o arquivo .lib produzido por esse projeto filho. Essa propriedade pode ser desnecessária em projetos que produzem DLLs COM ou DLLs somente recursos, pois essas DLLs não têm exportações significativas. Se uma DLL não tiver exportações, o vinculador não gerará um arquivo .lib. Se nenhum arquivo de exportação .lib estiver presente e o sistema do projeto instruir o vinculador a vincular-se à DLL ausente, o link falhará. Use a propriedade Ignorar Biblioteca de Importação para resolver esse problema. Quando definido como Sim, o sistema do projeto ignora a presença ou ausência do arquivo .lib e faz com que qualquer projeto que dependa desse projeto não seja vinculado ao arquivo .lib inexistente.

Para acessar essa propriedade de forma programática, confira IgnoreImportLibrary.

Registrar Saída

Executa regsvr32.exe /s $(TargetPath) na saída do build, que é válida somente em .dll projetos. Para projetos .exe, essa propriedade é ignorada. Para registrar uma saída .exe, defina um evento postbuild na configuração para fazer o registro personalizado que sempre é necessário para arquivos .exe registrados.

Para acessar essa propriedade de forma programática, confira RegisterOutput.

Redirecionamento por usuário

O registro no Visual Studio é tradicionalmente feito em HKEY_CLASSES_ROOT (HKCR). Com o Windows Vista e sistemas operacionais posteriores, para acessar HKCR, é necessário executar o Visual Studio no modo elevado. Os desenvolvedores nem sempre desejam executá-lo no modo elevado, mas ainda precisam trabalhar com o registro. O redirecionamento por usuário permite que você faça o registro sem precisar 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 poderá causar o Erro de Build PRJ0050 do Projeto quando o programa tentar fazer uma gravação em HKCR.

Diretórios de Biblioteca Adicionais

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

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

Você também pode especificar um arquivo .obj fornecendo o nome do arquivo e o caminho relativo, por exemplo, ..\..\MyLibProject\MyObjFile.obj. Se o código-fonte do arquivo .obj tiver um #include para um cabeçalho pré-compilado, por exemplo,pch.h, então o arquivo pch.obj 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 da Biblioteca

Especifica se as entradas para a ferramenta bibliotecária devem ser usadas, em vez do próprio arquivo de biblioteca, ao vincular saídas de biblioteca de dependências do projeto. Em um projeto grande, quando um projeto dependente produz um arquivo .lib, a vinculação incremental é desabilitada. Se houver muitos projetos dependentes que produzem arquivos .lib, a construção do aplicativo poderá levar muito tempo. Quando essa propriedade está configurada como Sim, o sistema do projeto vincula nos .obj arquivos .lib os arquivos produzidos por projetos dependentes, possibilitando a vinculação incremental.

Para obter informações sobre como acessar a página de propriedades do vinculador Geral, veja Definir propriedades do compilador e de 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 associação de DLL

/ALLOWBIND:NO define um bit no cabeçalho de uma DLL que indica Bind.exe que vincular a imagem não é permitido. Talvez você não queira que uma DLL seja vinculada caso ela tenha sido assinada digitalmente (a associaçã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 opção /FORCE diz ao vinculador para criar um arquivo .exe ou DLL mesmo se um símbolo for referenciado, mas não definido (UNRESOLVED), ou for definido várias vezes (MULTIPLE). Isso pode criar um arquivo .exe inválido.

Opções

  • Habilitado - /FORCE sem argumentos implica /FORCE:MULTIPLE e /FORCE:UNRESOLVED.
  • Multiplicar apenas símbolo definido - Use /FORCE:MULTIPLE para criar um arquivo de saída, mesmo se o LINK encontrar 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 o LINK encontrar ou não um símbolo indefinido. /FORCE:UNRESOLVED é ignorado se o símbolo do ponto de entrada não for resolvido.

Criar imagem de aplicação de patch dinâmica

Prepara uma imagem para patch instantâneo.

Opções

  • Habilitado - Prepara uma imagem para hot patching.
  • Somente imagem X86 - Prepara uma imagem X86 para hot patching.
  • 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 opção /SECTION altera os atributos de uma seção, substituindo os atributos definidos quando o arquivo .obj da seção foi compilado.

Página de propriedades de entrada

Dependências adicionais

Especifica itens de dependência extras para adicionar à linha de comando do link, por exemplo kernel32.lib.

Ignorar Todas as Bibliotecas Padrão

A opção /NODEFAULTLIB diz ao vinculador para remover uma ou mais bibliotecas padrão 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 ignoradas. Separar várias bibliotecas com ponto e vírgula. (/NODEFAULTLIB:[name, name, ...])

Arquivo de definição de módulo

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

Adicionar módulo ao assembly

A opção /ASSEMBLYMODULE 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 assembly 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 ao assembly.

Inserir arquivo de recurso gerenciado

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

Forçar referências de símbolo

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

Atrasar DLLs carregadas

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

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

Página Propriedade 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 serão colocados na seção de dependência do arquivo de manifesto.

Permitir isolamento

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

Habilitar UAC (Controle de Conta de Usuário)

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 quando ele é executado com Controle de Conta de Usuário. (/MANIFESTUAC:level=[value])

Opções

  • asInvoker – nível de execução do UAC: como invocador.
  • highestAvailable – nível de execução do UAC: o mais alto disponível.
  • requireAdministrator – nível de execução do UAC: exigir administrador.

UAC Ignorar proteção de interface do usuário

Especifica se deseja ignorar ou não os níveis de proteção da interface do usuário para outras janelas na área de trabalho. Defina essa propriedade como "Sim" somente para aplicativos de acessibilidade. (/MANIFESTUAC:uiAccess=[true | false])

Páginas de propriedades de depuração

Gerar informações de depuração

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

Opções

  • Não – produz informações de depuração.
  • Gerar informações de depuração – criar um PDB (Banco de Dados de Programa) completo ideal para distribuição para o Microsoft Symbol Server.
  • Gere informações de depuração otimizadas para links mais rápidos - Produz um banco de dados de programa (PDB) ideal para um ciclo rápido de edição-link-depuração.
  • Gere informações de depuração otimizadas para compartilhamento e publicação - Produz um banco de dados de programa (PDB) ideal para um ciclo compartilhado de edição-link-depuração.

Gerar arquivo de banco de dados de 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 arquivo padrão para o PDB possui o nome base do programa e a extensão .pdb.

Remover símbolos privados

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

Gerar arquivo de mapa

A opção /MAP diz ao vinculador para criar um arquivo de mapa.

Nome de Arquivo de Mapa

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

Exportações de mapas

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

Assembly depurável

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

Página de propriedade do sistema

SubSystem

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

Opções

  • Não Definido – nenhum subsistema definido.
  • Console – aplicativo do modo de caractere Win32. Os aplicativos de console recebem um console pelo sistema operacional. Se main ou wmain for definido, CONSOLE será o padrão.
  • Windows - A aplicação não necessita de console, provavelmente porque cria suas próprias janelas para interação com o usuário. Se WinMain ou wWinMain estiver definido, WINDOWS será o padrão.
  • Nativo – drivers de dispositivo para Windows NT. Se /DRIVER:WDM for especificado, NATIVE será o padrão.
  • Aplicativo EFI – aplicativo EFI.
  • EFI Boot Service Driver – driver de serviço de inicialização EFI.
  • ROM EFI – ROM EFI.
  • Runtime EFI – Runtime EFI.
  • POSIX – aplicativo que é executado com o subsistema POSIX no Windows NT.

Versão mínima necessária

Especifica 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 do heap

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

Tamanho do commit de heap

Especifica o tamanho da alocação de heap total na memória física. O padrão é 4 KB. ([/HEAP:reserve,commit](heap-set-heap-size.md))

Tamanho da reserva de pilha

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

Tamanho do commit de pilha

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

Habilitar endereços grandes

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

Terminal Server

A opção /TSAWARE define um sinalizador no campo IMAGE_OPTIONAL_HEADER DllCharacteristics no cabeçalho opcional da imagem do programa. Se esse sinalizador estiver definido, o Terminal Server não fará certas alterações no aplicativo.

Execução de Troca do CD

A opção /SWAPRUN informa ao sistema operacional para primeiro copiar a saída do vinculador para um arquivo de troca e, em seguida, executar a imagem a partir daí. Essa 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 depois a carregará.

Execução de Troca da Rede

A opção /SWAPRUN informa ao sistema operacional para primeiro copiar a saída do vinculador para um arquivo de troca e, em seguida, executar a imagem a partir daí. Essa 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 troca e a carregará de lá. Essa opção é útil para executar aplicativos pela rede.

Driver

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

Opções

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

Página da propriedade 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.

Habilitar Dobra COMDAT

Use /OPT:ICF[=iterations] para realizar dobramento COMDAT idêntico.

Ordem da função

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

Banco de dados guiado por perfil

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

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

Opções

  • Padrão – configuração padrão do LTCG.
  • Use a geração rápida de código de tempo de link - Use a geração de código de tempo de link com /FASTGENPROFILE.
  • Usar Geração de Código Durante o Tempo de Vinculação – Use a Geração de Código Durante o Tempo de Vinculação.
  • Otimização guiada por perfil - Instrumento - Use otimização guiada por perfil com :PGINSTRUMENT.
  • Otimização guiada pelo 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 de Perfil - Atualização - Permite e rastreia a lista de arquivos de entrada a serem adicionados ou modificados a partir do que foi especificado na fase :PGINSTRUMENT.

Página de propriedade IDL inserida

Comandos MIDL

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

Ignorar IDL incorporada

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

Nome do arquivo base IDL mesclado

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

Biblioteca de tipos

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

ID do recurso TypeLib

Permite que você especifique a ID do recurso da biblioteca de tipos gerada pelo vinculador. (/TLBID:id)

Página de propriedades de metadados do Windows

Gera metadados do Windows

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

Opções

  • Sim – habilitar a geração de arquivos de metadados do Windows.
  • Não – desabilitar a geração de arquivos de metadados do Windows.

Arquivo de metadados do Windows

A /WINMDFILE opção de mudança.

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 apenas colocar a chave pública nos metadados do Windows. O padrão é /WINMDDELAYSIGN:NO.

Página de propriedades avançadas

Entry Point

A opção [/ENTRY](entry-entry-point-symbol.md) especifica uma função de ponto de entrada como o endereço inicial de um arquivo .exe ou DLL.

Nenhum ponto de entrada

A opção /NOENTRY é necessária para criar uma DLL somente de recursos. Use essa opção para impedir que o LINK vincule uma referência a _main na DLL.

Definir soma de verificação

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

Endereço básico

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

Endereço básico aleatório

Endereço básico aleatório. (/DYNAMICBASE[:NO])

Endereço básico corrigido

Cria um programa que só pode ser carregado em seu endereço básico preferido. (/FIXED[:NO])

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

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

Desativar a geração de assembly

A opção /NOASSEMBLY informa 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 pede para a função de ajuda de carregamento atrasado dar suporte ao descarregamento explícito da DLL. (/DELAY:UNLOAD)

Não associar DLL carregada com atraso

O qualificador NOBIND informa ao vinculador para não incluir uma tabela de endereços de importação (IAT) vinculável na imagem final. O padrão é criar a IAT associável para DLLs carregadas com atraso. (/DELAY:NOBIND)

Importar biblioteca

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

Mesclar seções

A opção /MERGE 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 seção .rdata com a .text seção e nomeia a seção combinada .text.

Computador de destino

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

Opções

  • Não definido
  • MachineARM
  • MachineARM64
  • MachineEBC
  • MachineIA64
  • MachineMIPS
  • MachineMIPS16
  • MachineMIPSFPU
  • MachineMIPSFPU16
  • MachineSH4
  • MachineTHUMB
  • MachineX64
  • MachineX86

Perfil

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

Atributo de thread CLR

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

Opções

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

O tipo de imagem CLR

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

Opções

  • Forçar imagem IJW
  • Forçar imagem IL pura
  • Forçar imagem IL segura
  • Tipo de imagem padrão

Arquivo de chave

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

Contêiner de chave

Especifica um contêiner de chave para assinar um assembly. (/KEYCONTAINER:name)

Sinal de atraso

Assina parcialmente um assembly. Use /DELAYSIGN se quiser apenas colocar a chave pública no assembly. O padrã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 de código gerenciado em DLLs nativas.

Relatório de Erros

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

Opções

  • PromptImmediately – solicitar imediatamente.
  • Fila para próximo login - Fila para próximo login.
  • Enviar relatório de erros – enviar relatório de erros.
  • Nenhum relatório de erro – nenhum relatório de erro.

SectionAlignment

A opção /ALIGN especifica o alinhamento de cada seção dentro do espaço de endereço linear do programa. O argumento numérico 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 das 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.

Opções

  • Habilitado - Habilitar /CLRSupportLastError.
  • Desabilitado - Desabilitar /CLRSupportLastError.
  • Somente DLLs do sistema - Habilite /CLRSupportLastError somente para DLLs do sistema.

A imagem tem manipuladores de exceção seguros

Se /SAFESEH for especificado, o vinculador somente produzirá uma imagem se também puder produzir uma tabela de 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.