Compartilhar via


/Yd (colocar informações de depuração no arquivo de projeto)

Coloca informações de depuração completas em todos os arquivos-objeto criados com base em um arquivo de cabeçalho pré-compilado (.pch) quando usado com as opções /Yc e /Z7. Preterido.

Sintaxe

/Yd

Comentários

A /Yd está preterida; o Visual C++ agora dá suporte a vários objetos que gravam em um único arquivo .pdb; use /Zi. Para obter uma lista de opções do compilador preteridas, confira Opções do compilador preteridas e removidas em Opções do compilador listadas por categoria.

A menos que você precise distribuir uma biblioteca contendo informações de depuração, use a opção /Zi em vez de /Z7 e /Yd.

O armazenamento de informações completas de depuração em cada arquivo .obj é necessário apenas para distribuir bibliotecas que contêm informações de depuração. Isso causa lentidão na compilação e exige espaço considerável em disco. Quando /Yc e /Z7 são usados sem /Yd, o compilador armazena informações comuns de depuração no primeiro arquivo .obj criado com base no arquivo .pch. O compilador não insere essas informações em arquivos .obj criados posteriormente com base no arquivo .pch; ele insere referências cruzadas às informações. Não importa quantos arquivos .obj usam o arquivo .pch, apenas um arquivo .obj contém as informações comuns de depuração.

Embora esse comportamento padrão resulte em tempos de build mais rápidos e reduza as demandas de espaço em disco, ele será indesejável se uma pequena alteração exigir a recompilação do arquivo .obj que contém as informações comuns de depuração. Nesse caso, o compilador deverá recompilar todos os arquivos .obj contendo referências cruzadas ao arquivo .obj original. Além disso, se um arquivo .pch comum for usado por projetos diferentes, a dependência de referências cruzadas em um único arquivo .obj será difícil.

Para obter mais informações sobre cabeçalhos pré-compilados, confira:

Para definir esta opção do compilador 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 de Configuração>C/C++>Linha de Comando.

  3. Digite a opção do compilador na caixa Opções Adicionais.

Para definir essa opção do compilador via programação

Exemplos

Suponha que você tem dois arquivos base, F.cpp e G.cpp, cada um contendo estas instruções #include:

#include "windows.h"
#include "etc.h"

O comando a seguir cria o arquivo de cabeçalho pré-compilado ETC.pch e o arquivo de objeto F.obj:

CL /YcETC.H /Z7 F.CPP

O arquivo de objeto F.obj inclui informações de tipo e símbolo para o WINDOWS.h e ETC.h (e outros arquivos de cabeçalho que eles incluem). Agora você pode usar o cabeçalho pré-compilado ETC.pch para compilar o arquivo de origem G.cpp:

CL /YuETC.H /Z7 G.CPP

O arquivo-objeto G.obj não inclui as informações de depuração para o cabeçalho pré-compilado, mas simplesmente faz referência a essas informações no arquivo F.obj. Observe que você deve vincular com o arquivo F.obj.

Se o cabeçalho pré-compilado não tiver sido compilado com /Z7, você ainda poderá usá-lo em compilações posteriores usando /Z7. No entanto, as informações de depuração são colocadas no arquivo-objeto atual e os símbolos locais para funções e tipos definidos no cabeçalho pré-compilado não estão disponíveis para o depurador.

Confira também

Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC