Precompiled headers

December 30th, 2008 Begemot Posted in Не wxWidgets

На шестом году программирования я наконец дорос до того что бы узнать что такое precompiled headers, как их делать и зачем они нужны:) Раньше я и конечно использовал, благо визард MFC-приложения делает precompiled header по умолчанию и заставляет им пользоватся. Но с переходом на wxWidgets надо было учить самому, а с “учить” у меня что-то последнее время проблемы.

Все оказалось не так и сложно, объясняю на бытов уровне, так что если кто знает как пользоватся – дальше не читайте! Обьясняю на примере VC 2008:

  1. Создаете и добавляете в проект x.h и x.cpp файлы
  2. В x.cpp пишете #include “x.h”
  3. В .h добавляете все все хедеры которые вам нужны
  4. Во все cpp файлы проекта добавляете  #include “x.h”
  5. Вызываете контекстое меню для x.cpp, выбираете свойства файла  С++ ->Precompiled headers -> Create Precompiled headers \Yc  |   x.h    | $(IntDir)\$(TargetName).pch
  6. Теперь настройки проекта, туда же. Use Precompiled headers |   x.h    | $(IntDir)\$(TargetName).pch
  7. Радуйтесь

После этих действий  полная сборка проекта занимает максимум 12 секунд вместо 1:20, и это я еще далеко не все стандартные хедеры вынес в precompiled headers. Компиляция части проекта, тоже быстрее  1-2 секунды.

Знаю что это азы, но вдруг кто как и я их не знает:)

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

Related:

Posted in Не wxWidgets

2 Responses to “Precompiled headers”

  1. Сегодня попробовал. После недолгих экспериментов понял что пункты 5 и 6 надо поменять местами (по крайней мере для 2008 студии). Иначе получается что сначала мы ставим свойства файла, а потом эти свойства затираются при изменении настроек для всего проекта. 🙂

  2. Странно у меня вроде получалось, попробую проверить в следующий раз.