/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
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.
Щелкните папку C/C++.
Щелкните страницу свойств Командная строка.
Введите параметр компилятора в поле Дополнительные параметры.
Установка параметра компилятора программным способом
- См. раздел 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. Тем не менее, отладочная информация размещается в текущем объектном файле, и локальные символы для функций и типов, определенных в предкомпилированном заголовке, не будут доступны отладчику.