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


Параметр /Yl (вставка ссылки на PCH-файл для библиотеки отладки)

Параметр /Yl создает уникальный символ в предварительно скомпилированного файла заголовка, а ссылка на этот символ внедряется во все файлы объектов, использующие предварительно скомпилированные заголовки.

Синтаксис

/Yl
/Ylname
/Yl-

Аргументы

name
Необязательное имя, используемое в составе уникального символа.

-
Дефис (-) явно отключает параметр компилятора /Yl .

Замечания

Параметр компилятора /Yl создает уникальное определение символов в предварительно скомпилированном файле заголовка, созданном с помощью параметра /Yc . Ссылки на этот символ автоматически внедряются во все файлы, включающие предварительно скомпилированный заголовок с помощью параметра компилятора /Yu . Параметр /Yl включен по умолчанию при использовании /Yc для создания предварительно скомпилированного файла заголовка.

Параметр /Ylname используется для создания идентифицируемых символов в предварительно скомпилируемом файле заголовка. Компилятор использует аргумент имени в составе созданного символа, аналогичного __@@_PchSym_@00@...@nameтому, где многоточие (...) представляет уникальную строку символов, созданную компилятором. Если аргумент имени опущен, компилятор автоматически создает имя символа. Как правило, вам не нужно знать имя символа. Однако если в проекте используется несколько предварительно скомпилированных файлов заголовков, параметр /Ylname может быть полезен, чтобы определить, какие файлы объектов используют предварительно скомпилированные заголовки. Имя можно использовать в качестве строки поиска для поиска ссылки на символы в файле дампа.

/Yl— отключает поведение по умолчанию и не помещает символ идентификации в предварительно скомпилированного файла заголовка. Скомпилированные файлы, включающие этот предварительно скомпилированный заголовок, не получают общую ссылку на символы.

Если параметр /Yc не указан, любой параметр /Yl не действует, но если он указан, он должен соответствовать любому параметру /Yl , передаваемому при указании /Yc .

При использовании параметров /Yl-, /Yc и /Z7 для создания предварительно скомпилированного файла заголовка сведения об отладке хранятся в файле объекта исходного файла, используемом для создания предварительно скомпилированного заголовка, а не отдельного PDB-файла. Если этот файл объекта является частью библиотеки, LNK1211 ошибки или предупреждения LNK4206 могут возникать в сборках, использующих эту библиотеку и предварительно скомпилированный файл заголовка, если исходный файл, используемый для создания предварительно скомпилированного файла заголовка, не определяет никаких символов. Компоновщик может исключить файл объекта из ссылки, а также связанные сведения об отладке, если в клиенте библиотеки нет ссылки на файл объекта. Чтобы устранить эту проблему, укажите /Yl (или удалите параметр /Yl- при использовании /Yc для создания предварительно скомпилированного файла заголовка. Это гарантирует, что файл объекта из библиотеки, содержащей сведения об отладке, будет связан в сборке.

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

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

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

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

  3. Добавьте параметр компилятора имени /Ylв поле "Дополнительные параметры". Нажмите ОК, чтобы сохранить внесенные изменения.

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

См. также

Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC