Поделиться через


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

Обновлен: Ноябрь 2007

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

 /Yd

Заметки

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

Если нет необходимости распространять библиотеку, содержащую отладочную информацию, вместо параметров /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. Введите параметр компилятора в поле Дополнительные параметры.

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

Примеры

Предположим, есть два базовых файла, 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. Тем не менее, отладочная информация размещается в текущем объектном файле, и локальные символы для функций и типов, определенных в предкомпилированном заголовке, не будут доступны отладчику.

См. также

Ссылки

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

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