/Yu
(Используйте предварительно скомпилированные файл заголовка)
Указывает компилятору использовать существующий предварительно скомпилированный файл заголовка (.pch
) в текущей компиляции.
Синтаксис
/Yu
[имя_файла]
Аргументы
filename
Имя файла заголовка, который входит в исходный файл с помощью #include
директивы препроцессора.
Замечания
Имя файла include должно совпадать как для параметра, создающего предварительно скомпилированные заголовки, так /Yc
и для любого последующего /Yu
параметра, указывающего на использование предварительно скомпилированного заголовка.
Для /Yc
параметра filename указывает точку, в которой останавливается прекомпиляция; компилятор предварительно компилирует весь код, хотя имя файла и именует результирующий предварительно скомпилированный заголовок, используя базовое имя файла include и расширение .pch
.
Файл .pch
должен быть создан с помощью /Yc
.
Компилятор обрабатывает весь код, происходящий до H-файла, как предварительно компилированный. Он пропускает только после директивы, связанной #include
с .h
файлом, использует код, содержащийся в .pch
файле, а затем компилирует весь код после имени файла.
В командной строке пробел не допускается между /Yu
именем файла и именем файла.
При указании /Yu
параметра без имени файла исходная программа должна содержать #pragma hdrstop
pragma, указывающую имя файла предварительно скомпилированного заголовка, .pch
файла. В этом случае компилятор будет использовать предварительно скомпилированный заголовок (.pch
файл) с /Fp (Name .pch file)
именем . Компилятор пропускает расположение этой pragma и восстанавливает скомпилированное состояние из указанного предварительно скомпилированного файла заголовка. Затем он компилирует только код, следующий за pragma. Если #pragma hdrstop
имя файла не указано, компилятор ищет файл с именем, производным от базового имени исходного файла с расширением .pch
. Можно также использовать /Fp
параметр для указания другого .pch
файла.
Если указать /Yu
параметр без имени файла и не указать hdrstop
pragma, создается сообщение об ошибке и компиляция завершается неудачно.
/Yc
Если параметры имени файла и /Yu
имени файла происходят в одной командной строке, и оба ссылаются на одно и то же имя файла, /Yc
имя файла имеет приоритет, предварительно компилируя весь код до и включая именованный файл. Эта функция упрощает написание файлов makefile.
Так как .pch
файлы содержат сведения об среде компьютера и адресе памяти о программе, следует использовать .pch
только файл на компьютере, где он был создан.
Дополнительные сведения о предварительно скомпилированных заголовках см. в следующем разделе:
Установка данного параметра компилятора в среде разработки Visual Studio
Укажите
/Yc
(создайте предварительно компилируемый файл заголовка) в файле .cpp в проекте.Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Выберите страницу свойств>конфигурации C/C++>Precompiled Headers.
Измените свойство предкомпилированного заголовка , свойство Create/Use PCH Through File или Create/Use Precompiled Header .
Установка данного параметра компилятора программным способом
- Ознакомьтесь с разделами PrecompiledHeaderThrough и UsePrecompiledHeader.
Пример
Если следующий код:
#include <afxwin.h> // Include header for class library
#include "resource.h" // Include resource definitions
#include "myapp.h" // Include information specific to this app
...
компилируется с помощью командной строки CL /YuMYAPP.H PROG.CPP
, компилятор не обрабатывает три инструкции include. Вместо этого он использует предварительно скомпилированный код, MYAPP.pch
который экономит время, связанное с предварительной обработкой всех трех файлов (и всех файлов, которые они могут включать).
Можно использовать /Fp (Name .pch file)
параметр с /Yu
параметром, чтобы указать имя файла, если имя .pch
отличается от аргумента /Yc
имени файла или базового имени исходного файла, как показано в следующем примере:
CL /YuMYAPP.H /FpMYPCH.pch PROG.CPP
Эта команда задает предварительно скомпилированный файл заголовка с именем MYPCH.pch
. Компилятор использует его содержимое для восстановления предварительно скомпилированного состояния всех файлов заголовков вплоть до и в том числе MYAPP.h
. Затем компилятор компилирует код, который возникает после #include "MYAPP.h"
директивы *.
См. также
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC