Домашняя страница Использование Precompiled файла, для ускорения компиляции
Публикация
Отменить

Использование Precompiled файла, для ускорения компиляции

Реальные приложения могут иметь множество проектов в одном салюшине в Visual Studio. Эти проекты могут содержать сотни файлов исходного кода и это несомненно скажется на времени компиляции. Существует способ значительно ускорить компиляцию создав Precompiled файл.

Представьте, что у вас есть множество классов, каждый из которых имеет свои .h и .cpp файлы. При этом если несколько классов подключают один и тот же, то он будет компилироваться множество раз. Идея Precompiled файлов заключается в том, чтобы компилировать наиболее часто используемые модули всего один раз. Это значительно ускоряет процесс компиляции программы.

Давайте настроим проект в Visual Studio таким образом, чтобы использовать Precompiled файл. Для начала нужно создать два файла

1
2
3
4
5
6
7
8
9
10
11
12
// создаем два файла
Precompiled.h
Precompiled.cpp


//Precompiled.h - этот файл должен содержать include для всех файлов, которые могут понадобится в этом модуле.
#include "class1.h"
#include "class2.h"
...

//Precompiled.cpp - должен содержать только одну строчку.
#include "Precompiled.h"

Поскольку Precompiled файл базовый, он должен быть включен во все .cpp файлы кода первым. Т.е. первой должна быть строчка

1
#include "Precompiled.h".

Настройка проекта

Теперь перейдем к настройке проекта. Откройте свойства проекта, выберите в параметрах Use Precompiled Header (/Yu) и укажите Precompiled.h как базовый файл.

Теперь откройте свойства файла Precompiled.cpp и укажите Create Precompiled Header (/Yc). Именно этим вы говорите, что результат компиляции данного файла будет использоваться для создания .pch файла.

И в заключение убедитесь, что остальные файлы будут использовать созданных .pch файл. В их свойствах будет стоять Use Precompiled Header (/Yu).

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

Публикация защищена лицензией CC BY 4.0 .

Интеграция Native кода в C# проект

Как подписать C++/CLI сборку строгим именем