/Yd (размещение отладочной информации в объектном файле)
Темпы завершения отладки во всех файлах объектов, созданных из предварительно скомпилированного файла заголовка (PCH) при использовании с параметрами /Yc и /Z7 . Устарело.
Синтаксис
/Yd
Замечания
/Yd не рекомендуется; Visual C++ теперь поддерживает запись нескольких объектов в один PDB-файл, вместо этого используйте /Zi . Список устаревших параметров компилятора см. в разделе "Устаревшие" и "Удаленные параметры компилятора" в параметрах компилятора, перечисленных по категориям.
Если вам не нужно распространять библиотеку, содержащую сведения об отладке, используйте параметр /Zi , а не /Z7 и /Yd.
Хранение полных сведений об отладке в каждом .obj файле необходимо только для распространения библиотек, содержащих сведения об отладке. Он замедляет компиляцию и требует значительного места на диске. При использовании /Yc и /Z7 без /Yd компилятор сохраняет общие сведения об отладке в первом .obj файле, созданном из PCH-файла. Компилятор не вставляет эти сведения в файлы .obj, которые впоследствии создаются из PCH-файла; он вставляет перекрестные ссылки на информацию. Независимо от того, сколько .obj файлов использует PCH-файл, только один файл .obj содержит общие сведения об отладке.
Хотя это поведение по умолчанию приводит к более быстрому времени сборки и снижению спроса на место на диске, нежелательно, если небольшое изменение требует перестроения файла .obj, содержащего общие сведения об отладке. В этом случае компилятор должен перестроить все .obj файлы, содержащие перекрестные ссылки на исходный файл .obj. Кроме того, если общий PCH-файл используется различными проектами, зависимость от перекрестных ссылок на один файл .obj сложно.
Дополнительные сведения о предварительно скомпилированных заголовках см. в следующем разделе:
Установка данного параметра компилятора в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в 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. Однако сведения об отладке помещаются в текущий файл объекта, а локальные символы функций и типов, определенных в предварительно скомпилированных заголовках, недоступны для отладчика.
См. также
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC