Precompiled headers
December 30th, 2008 Begemot Posted in Не wxWidgets
На шестом году программирования я наконец дорос до того что бы узнать что такое precompiled headers, как их делать и зачем они нужны:) Раньше я и конечно использовал, благо визард MFC-приложения делает precompiled header по умолчанию и заставляет им пользоватся. Но с переходом на wxWidgets надо было учить самому, а с “учить” у меня что-то последнее время проблемы.
Все оказалось не так и сложно, объясняю на бытов уровне, так что если кто знает как пользоватся – дальше не читайте! Обьясняю на примере VC 2008:
- Создаете и добавляете в проект x.h и x.cpp файлы
- В x.cpp пишете #include “x.h”
- В .h добавляете все все хедеры которые вам нужны
- Во все cpp файлы проекта добавляете #include “x.h”
- Вызываете контекстое меню для x.cpp, выбираете свойства файла С++ ->Precompiled headers -> Create Precompiled headers \Yc | x.h | $(IntDir)\$(TargetName).pch
- Теперь настройки проекта, туда же. Use Precompiled headers | x.h | $(IntDir)\$(TargetName).pch
- Радуйтесь
После этих действий полная сборка проекта занимает максимум 12 секунд вместо 1:20, и это я еще далеко не все стандартные хедеры вынес в precompiled headers. Компиляция части проекта, тоже быстрее 1-2 секунды.
Знаю что это азы, но вдруг кто как и я их не знает:)
Выражаю благодарность одному хорошему человеку, автору программы для создания иконок, за неоценимую помощь в этом вопросе.
December 15th, 2009 at 11:19 pm
Сегодня попробовал. После недолгих экспериментов понял что пункты 5 и 6 надо поменять местами (по крайней мере для 2008 студии). Иначе получается что сначала мы ставим свойства файла, а потом эти свойства затираются при изменении настроек для всего проекта. 🙂
December 15th, 2009 at 11:33 pm
Странно у меня вроде получалось, попробую проверить в следующий раз.