С++ Builder: как ускорить компиляцию (часть 2)
реклама
Недавно я получил письмо от safid, который сообщил мне об интересном пакете - IDECompilerSpeedFix.
После некоторых розысков в google, я нашел сайт разработчика этого пакета - http://andy.jgknet.de/cpp.
Пакет представляет собой plugin к IDE C++ Builder и "убивает" сразу двух зайцев - автоматизирует работу с предкомпилированными заголовками и заменяет встроенный диалог компиляции на свой.
Необходимость замены процедуры компиляции обусловлена наличием ошибки в IDE - эта ошибка вызывает значительное(!) замедление компиляции.
В наличии ошибки вы можете убедиться сами - сделайте build одного и того же проекта из IDE и запомните время компиляции. Затем скомпилируйте проект из командной строки с помощью команд:
bpr2mak Project.bpr
make -B -f Project.mak
Вместо Project.bpr нужно указать имя bpr-файла вашего проекта, утилиты bpr2mak и make находятся в папке "\Program Files\Borland\CBuilder6\Bin".
У меня проверка на достаточно большом проекте показала следующее:
Command line - 622 сек = 10.3 мин
IDE - 1306 сек = 21.76 мин
Т.е. разница во времени - более чем в два раза.
Теперь подробнее о самом пакете - на сайте разработчика их несколько: Bcc32Pch C++Builder IDE Plugin, IDE Console Compiler, IDE Compiler Speed Fix. Первый - это универсальный пакет, который включает остальные два, его я и предлагаю использовать. Причем обращу внимание, что скачивать лучше не
текущую версию, которая предлагается на сайте (Version 2.55), а более позднюю версию - для этого можно открыть список всех файлов по ссылке http://andy.jgknet.de/cpp/files/, я использовал bcc32pch26InstallDev10.zip.
Более позднюю версию мне пришлось использовать, так как в версии 2.55 я обнаружил один неприятный недостаток - при компиляции перестали использоваться переменные окружения, в которых у меня заданы пути к компонентам (например, для RXLIB - в Tools->Environment Options->Environment
Variables->таблица User Overrides у меня задана переменная CMPN_RXLIB = D:\Components\rxlib\RxLibraryBCB6, а в свойствах проекта вместо полного пути я просто добавляю $(CMPN_RXLIB) - это очень помогает при необходимости компиляции проекта на разных компьютерах, где пути к компонентам могут быть
разными).
После установки пакета, можно настроить его свойства в Tools->Configure Compiler Enhancements. Кроме того, появляются новые пункты в меню Project, в том числе Create PCH file - создает h-файл для предкомпилированного заголовка). Подробнее описывать не буду - во-первых на сайте разработчика
есть достаточно подробное описание, во-вторых использование и настройка пакета достаточно понятны и без описания.
Удивление вызывает то, что пакет, несмотря на свою очивидную полезность (и даже необходимость), видимо, не очень популярен - даже когда я знал что искать, найти его удалось не сразу.
Вот еще две ссылки на тему ускорения компиляции:
http://helene-lange-weg.mine.nu/Rutsch/cppcorner.html - GUI-инструмент для компиляции проектов с помощью инструментов командной строки.
http://www.jomitech.com/index.html#twine - многопоточный компилятор, который по-идее может ускорить компиляцию - на сайте можно скачать trial версию.
реклама
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают