C++

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

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

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

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


// создаем два файла
Precompiled.h
Precompiled.cpp


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

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


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

#include "Precompiled.h".


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


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


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


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


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

Похожие записи




Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Warning: Unknown: write failed: No space left on device (28) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php5) in Unknown on line 0