/Yd (размещение отладочной информации в объектном файле)

Если этот параметр используется с параметрами /Yc и /Z7, то полная отладочная информация размещается во всех объектных файлах, созданных по файлу предкомпилированного заголовка (PCH).Устаревший.

/Yd

Заметки

Параметр /Yd является устаревшим; Visual C++ теперь поддерживает запись нескольких объектов в один PDB-файл; вместо этого параметра следует использовать параметр /Zi.Дополнительные сведения см. в разделе Deprecated Compiler Options.

Если нет необходимости распространять библиотеку, содержащую отладочную информацию, вместо параметров /Z7 и /Yd следует использовать параметр /Zi.

Запись полной отладочной информации в каждый файл OBJ необходима только для распространения библиотек, содержащих отладочную информацию.Это замедляет компиляцию и требует значительных объемов дискового пространства.Если параметры /Yc и /Z7 используются без параметра /Yd, то компилятор сохраняет общую отладочную информацию в первом файле OBJ, созданном по файлу PCH.Компилятор не будет вставлять эту информацию в последующие файлы OBJ, созданные по файлу PCH; вместо этого он вставляет перекрестные ссылки на информацию.Неважно, сколько файлов OBJ использует файл PCH; общую отладочную информацию будет содержать только один файл OBJ.

Несмотря на то, что это поведение, используемое по умолчанию, приводит к сокращению времени построения и снижению требований к объему дискового пространства, оно будет нежелательным в случае, если в результате небольшого изменения требуется перестроить файл OBJ, содержащий общую отладочную информацию.В этом случае компилятору придется перестроить все файлы OBJ, содержащие перекрестные ссылки на исходный файл OBJ.Помимо этого, если один и тот же файл PCH используется в нескольких проектах, полагаться на перекрестные ссылки к единому файлу OBJ будет затруднительно.

Дополнительные сведения о предкомпилированных заголовках см. в разделах:

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта.Дополнительные сведения см. в разделе Открытие свойств страниц проекта.

  2. Откройте папку C/C++.

  3. Выберите страницу свойств Командная строка.

  4. Введите параметр компилятора в поле Дополнительные параметры.

Установка данного параметра компилятора программным способом

  • Дополнительные сведения см. в разделе AdditionalOptions.

Примеры

Предположим, есть два базовых файла, F.cpp и G.cpp, в каждом из которых содержатся следующие операторы #include:

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

Следующая команда создает файл предкомпилированного заголовка ETC.pch и объектный файл F.obj:

CL /YcETC.H /Z7 F.CPP

Объектный файл F.obj содержит информацию о типах и символьную информацию для файлов WINDOWS.h и ETC.h (а также всех включаемых ими заголовочных файлов).Теперь предкомпилированный заголовок ETC.pch можно использовать для компиляции исходного файла G.cpp:

CL /YuETC.H /Z7 G.CPP

Объектный файл G.obj не содержит отладочную информацию для предкомпилированного заголовка, а просто ссылается на информацию, хранящуюся в файле F.obj.Обратите внимание, что при компоновке необходимо использовать файл F.obj.

Даже если предкомпилированный заголовок компилировался без использования параметра /Z7, его все равно можно использовать при последующей компиляции с параметром /Z7.Тем не менее, отладочная информация размещается в текущем объектном файле, и локальные символы для функций и типов, определенных в предкомпилированном заголовке, не будут доступны отладчику.

См. также

Ссылки

Параметры компилятора

Настройка параметров компилятора