/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
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.
Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.
Digite a opção do compilador na caixa Opções Adicionais.
Para definir essa opção do compilador via programação
- Consulte AdditionalOptions.
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