С++ Builder: как ускорить компиляцию (часть 2)

28 марта 2006, вторник 15:31
для раздела Блоги
В предыдущей статье (http://people.overclockers.ru/seb/record3) я описывал, как ускорить компиляцию в Borland C++ Builder с помощью предкомпилированных заголовков.

Недавно я получил письмо от 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 версию.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают