/INCREMENTAL (vincular de maneira incremental)

Especifica se é necessário vincular incrementalmente ou sempre executar uma vinculação completa.

Sintaxe

/INCREMENTAL[:NO]

Comentários

A opção de vinculador /INCREMENTAL controla como o vinculador lida com a vinculação incremental.

Por padrão, o vinculador é executado no modo incremental. Para substituir uma vinculação incremental padrão, especifique /INCREMENTAL:NO.

Um programa incrementalmente vinculado é funcionalmente equivalente a um programa vinculado de forma não incremental. No entanto, como ele é preparado para vinculações incrementais subsequentes, um executável, uma biblioteca estática ou um arquivo .dll vinculado de maneira incremental:

  • É maior do que um programa vinculado não incrementalmente devido ao preenchimento de código e dados. O preenchimento permite que o vinculador aumente o tamanho das funções e dos dados sem recriar o arquivo .exe.

  • Pode conter conversões de atalho para manipular a realocação de funções para novos endereços.

    Observação

    Para garantir que a compilação da versão final não tenha preenchimento ou conversões, vincule seu programa de maneira não incremental.

Para vincular de maneira incremental independentemente do padrão, especifique /INCREMENTAL. Quando essa opção está selecionada, o vinculador emitirá um aviso se não puder vincular de maneira incremental e vinculará o programa de maneira não incremental. Determinadas opções e situações substituem /INCREMENTAL.

A maioria dos programas pode ser vinculada incrementalmente. Entretanto, algumas alterações são muito grandes e algumas opções são incompatíveis com a vinculação incremental. O LINK executa uma vinculação completa se qualquer uma das seguintes opções for especificada:

  • A vinculação incremental não está selecionada (/INCREMENTAL:NO)

  • /OPT:REF está selecionada

  • /OPT:ICF está selecionada

  • /OPT:LBR está selecionada

  • /ORDER está selecionada

/INCREMENTAL é implícita quando /DEBUG é especificada.

Além disso, o LINK executa uma vinculação completa se qualquer uma das seguintes situações ocorrer:

  • Está faltando o arquivo de status incremental (.ilk). (O LINK cria um novo arquivo .ilk em preparação para a vinculação incremental subsequente).

  • Não há permissão de gravação para o arquivo .ilk. (O LINK ignora o arquivo .ilk e o vincula de maneira não incremental).

  • O arquivo de saída .exe ou .dll está ausente.

  • O carimbo de data/hora da classe .ilk, .exe ou .dll foi alterado.

  • Uma opção LINK foi modificada. A maioria das opções LINK, quando alteradas entre as compilações, causa uma vinculação completa.

  • Um arquivo de objeto (.obj) foi adicionado ou omitido.

Uma vinculação incremental cria ou atualiza um arquivo de banco de dados de vinculação incremental .ilk. Você pode especificar o nome e o local desse arquivo usando a opção do vinculador /ILK (nomear arquivo de banco de dados incremental). Para obter mais informações sobre o arquivo .ilk, confira arquivos .ilk como entrada do vinculador.

Para definir esta opção do vinculador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.

  2. Selecione a página de propriedades Propriedades da Configuração>Vinculador>Geral.

  3. Modifique a propriedade Habilitar Vinculação Incremental.

Para definir esta opção do vinculador por meio de programação

  1. Consulte LinkIncremental.

Confira também

Referência de vinculador MSVC
Opções de vinculador MSVC
Arquivos .ilk como entrada do vinculador