Compartilhar 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 /OUT opção 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 /VERSION opção diz ao vinculador para colocar um número de versão no cabeçalho do .exe arquivo 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 /NOLOGO opção impede a exibição da mensagem de direitos autorais e do número da versão.

Ignorar Biblioteca de Importação

Essa propriedade diz ao vinculador para não vincular nenhuma .lib saída gerada a partir dessa compilação em qualquer projeto dependente. Ele permite que o sistema do projeto manipule .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 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 .lib arquivo. Se nenhum arquivo de exportação .lib estiver presente e o sistema do projeto instruir o vinculador a vincular com a DLL ausente, o link falhará. Use a propriedade Ignorar Biblioteca de Importação para resolver esse problema. Quando definido como Sim, o sistema de projeto ignora a .lib presença ou ausência do arquivo e faz com que qualquer projeto que dependa desse projeto não se vincule ao arquivo inexistente .lib .

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

Registrar Saída

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

Para acessar essa propriedade de forma programática, confira 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 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 .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.ho 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 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 .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 vincula nos arquivos arquivos para .lib arquivos produzidos por projetos dependentes, habilitando a .obj vinculação incremental.

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

/ALLOWBIND:NO define um bit no cabeçalho de uma DLL que indica que a Bind.exe vinculação da imagem não é permitida. 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 /FORCE opção diz ao vinculador para criar um arquivo ou DLL mesmo se um .exe símbolo for referenciado, mas não definido (), ou for definido várias vezes (MULTIPLEUNRESOLVED). Ele pode criar um arquivo inválido .exe .

Opções

  • Habilitado - /FORCE sem argumentos implica ambos /FORCE:MULTIPLE e /FORCE:UNRESOLVED.
  • Multiply Defined Symbol Only - Use /FORCE:MULTIPLE para criar um arquivo de saída, mesmo se 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 localizar ou não um símbolo indefinido. /FORCE:UNRESOLVED será 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 extra a serem adicionados à linha de comando do link, por exemplo kernel32.lib.

Ignorar Todas as Bibliotecas Padrão

A /NODEFAULTLIB opção 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 /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 assembly

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 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 /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 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 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 acréscimo.

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 .exe arquivo ou a 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.
  • Gerar 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.
  • Gerar 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 tem o nome base do programa e a 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/Zdou /Zi).

Gerar arquivo de mapa

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

Assembly depurável

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

Página de propriedade do sistema

SubSystem

A /SUBSYSTEM opção informa ao sistema operacional como executar o .exe arquivo. 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 estiver definido, CONSOLE é o padrão.
  • Windows - O aplicativo não requer um console, provavelmente porque ele cria suas próprias janelas para interação com o usuário. Se WinMain ou wWinMain estiver definido, WINDOWS é 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,commitheap-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 /LARGEADDRESSAWARE opção informa ao vinculador que o aplicativo pode manipular 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.

Terminal Server

A opção /TSAWARE define um sinalizador no campo IMAGE_OPTIONAL_HEADERDllCharacteristics 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 /SWAPRUN opção diz ao sistema operacional para primeiro copiar a saída do vinculador para um arquivo de permuta 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 a carregará.

Execução de Troca da Rede

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

Driver

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

Opções

  • Não Definido – configuração padrão do driver.
  • Driver – Driver
  • UP Somente - /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 MP (multiprocessador).
  • O WDM - /DRIVER:WDM faz com que o vinculador defina o IMAGE_DLLCHARACTERISTICS_WDM_DRIVER bit no campo do DllCharacteristics 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 executar dobramento COMDAT idêntico.

Ordem da função

A /ORDER opção informa ao LINK para otimizar seu programa colocando determinados 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 .pgd arquivo 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 Fast Link Time Code Generation - Use Link Time Code Generation com /FASTGENPROFILEo .
  • 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.
  • Profile Guided Optimization - Update - Permite e rastreia a lista de arquivos de entrada a serem adicionados ou modificados a :PGINSTRUMENT partir do que foi especificado na fase.

Página de propriedade IDL inserida

Comandos MIDL

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

Ignorar IDL incorporada

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 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 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. O padrão é /WINMDDELAYSIGN:NO.

Página de propriedades avançadas

Entry Point

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

Nenhum ponto de entrada

A /NOENTRY opção é 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 /RELEASE opção define a soma de verificação no cabeçalho de um .exe arquivo.

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

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

Profile

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 você quiser colocar apenas 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 se 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 para a equipe do Visual Studio C++.

Opções

  • PromptImmediately – solicitar 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 erro – nenhum relatório de erro.

SectionAlignment

A /ALIGN opção 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 por meio 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.
  • Desativado - Desativar /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.