Параметр /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
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
Добавьте параметр компилятора имени /Ylв поле "Дополнительные параметры". Нажмите ОК, чтобы сохранить внесенные изменения.
Установка данного параметра компилятора программным способом
- См. раздел AdditionalOptions.
См. также
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC