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


Два варианта предварительной компиляции кода

Обновлен: Ноябрь 2007

На Visual C++ можно предварительно скомпилировать код C и C++. Пользователи не ограничиваются компиляцией только файлов заголовков.

Для выполнения предварительной компиляции необходимо выполнить планирование. Однако можно намного быстрее выполнять компиляции, если использовать предкомпилированный исходный код, а не только файлы заголовков.

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

К параметрам предварительной компиляции заголовков относятся /Yc (создать предварительно скомпилированный заголовочный файл) и /Yu (использование файла предкомпилированного заголовка). Следует использовать /Yc для создания предкомпилированного заголовка. При использовании необязательной прагмы hdrstop параметр /Yc позволяет выполнять предварительную компиляцию как файлов заголовков, так и исходного когда. Следует выбирать параметр /Yu, если необходимо использовать существующий предкомпилированный заголовок в существующей компиляции. Также можно использовать /Fp с параметрами /Yc и /Yu, чтобы задать альтернативное имя для предкомпилированного заголовка.

В разделах со справочной информацией по параметрам /Yu и /Yc рассматривается возможность использования их возможностей в среде разработки.

Построение файла PCH

Построение файла PCH можно выполнить очень просто с помощью другого файла PCH.

cl -c -Yc"stuff.h" -Fplevel1.pch level1.cpp
cl -c -Yu"stuff.h" -Fplevel1.pch -Yc level2.cpp

Файл level2.cpp выглядит следующим образом:

#include "stuff.h"
#include "morestuff.h"
#pragma hdrstop("level2.pch")

Следующая команда выполняет построение файла level2.pch, который можно использовать для последующих компиляций.

cl -c -Yu"morestuff.h" -Fplevel2.pch mysource.cpp

Обратите внимание, что директиву #pragma hdrstop следует поместить только в файл, который выполняет построение второго файла PCH. Нет необходимости помещать его во все файлы CPP, использующие файл PCH. Файлы, использующие файл PCH, могут именовать файл morestuff.h в командной строке (поэтому нет необходимости исправлять все файлы, чтобы его использовать данный файл). Любой из методов предварительной компиляции кода (автоматически или вручную) хранит результирующий предкомпилированный код в предкомпилированном заголовке.

Дополнительные сведения

Дополнительные примеры использования предкомпилированных заголовков см. в файлах Makefile, использованных для построения образцов программ, которые поставляются вместе с библиотекой Microsoft Foundation Class.

См. также

Ссылки

Создание файлов предкомпилированных заголовков