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


/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

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.

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

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

Примеры

Предположим, что у вас есть два базовых файла, 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