IDE организуют исходные файлы в наборы, которые называются проектами . Проекты IDE обычно связаны с единственным двоичным файлом или несколькими вариантами одного двоичного файла, такими как отладочная и окончательная сборки приложения. Большинство IDE позволяет пользователю организовать проекты в группы, которые называются группами проектов или решениями , и указать зависимости между проектами в группе.
• Система сборки предоставляет формат текстового файла для описания набора исходных и генерируемых из них двоичных файлов, а также инструмент сборки , который читает эти текстовые файлы и генерирует двоичные файлы, вызывая соответствующие инструменты командной строки. Обычно эти текстовые файлы создаются и редактируются с помощью текстового редактора, а инструмент сборки вызывается из командной строки. Однако некоторые системы сборки предоставляют для редактирования этих файлов и вызова инструмента сборки графический интерфейс.
В то время как IDE организует файлы в проекты , система сборки организует файлы в цели . Большинство целей соответствует генерируемым двоичным файлам, другие соответствуют действиям, выполняемым инструментом сборки, таким как установка приложения.
Наиболее часто в качестве инструмента сборки используется утилита make ; текстовые файлы, на которых она основана, называются makefile (make-файл). Хотя имеется множество версий make , в этой главе я обсуждаю GNU make — наиболее мощную и переносимую инкарнацию make . GNU make — это очень гибкий инструмент, который может использоваться не только для сборки приложений на С++. Он также имеет целый ряд преимуществ и широко используется и хорошо понимается разработчиками. К сожалению, заставить GNU make сделать именно то, что вам требуется, может оказаться не так просто, особенно в случае сложных проектов, использующих различные инструментарии. По этой причине я также описываю Boost.Build — мощную и расширяемую систему сборки, изначально предназначенную для сборки приложений на С++.
За подробным исследованием GNU make обратитесь к книге Роберта Мекленбурга (Robert Mecklenburg) Managing Projects with GNU make , Third Edition (издательство O'Reilly).
Boost.Build была разработана членами проекта Boost C++ Libraries. Она уже несколько лет используется большим сообществом разработчиков и постоянно активно совершенствуется. Boost.Build использует инструмент сборки, который называется bjam , и текстовые файлы, которые называются Jamfile ( Jam-файлы ). Ее самой сильной стороной является простота, с которой она позволяет управлять сложными проектами, предназначенными для нескольких платформ и содержащими несколько сборочных конфигураций. Хотя Boost.Build изначально создавалась как расширение системы сборки Perforce's Jam , она с тех пор подверглась значительной переработке. В момент сдачи этой книги в печать разработчики Boost.Build готовили официальный релиз второй основной версии этой системы сборки, и именно она описывается в этой главе
Обзор инструментария
В этой главе я буду обсуждать семь наборов инструментов командной строки: GCC, Visual C++, Intel, Metrowerks, Borland, Comeau и Digital Mars. Таблица 1.2 показывает имена инструментов командной строки из различных инструментариев, а табл. 1.3 показывает, где они расположены в вашей системе, если они установлены. Имена инструментов для Windows используют суффикс .exe , который требуется для исполняемых файлов Windows. Для инструментария, доступного как для Windows, так и для Unix, я заключаю этот суффикс в квадратные скобки.
Табл. 1.2. Имена инструментов командной строки в различном инструментарии
Инструментарий | Компилятор | Компоновщик | Архиватор |
---|
GCC | g++[.exe] | g++ | ar[.exe] ranlib[.exe] |
Visual C++ | cl.exe | link.exe | lib.exe |
Intel (Windows) | icl.exe | xilink.exe | xilib.exe |
Intel (Linux) | lcpc | icpc | arranlib |
Metrowerks | mwcc[.exe] | mwld[.exe] | mwld[.exe] |
Comeau | como[.exe] | como[.exe] | Зависит от инструментария |
Borland | bcc32.exe | bcc32.exe ilink32.exe | tlib.exe |
Digital Mars | dmc.exe | link.exe | lib.exe |
Табл. 1.3. Расположение ваших инструментов командной строки
Инструментарий | Расположение |
---|
GCC (Unix) | Обычно /usr/bin или /usr/local/bin |
GCC (Cygwin) | Поддиректория bin установки Cygwin |
GCC (MinGW) | Поддиректория bin установки MinGW |
Visual C++ | Поддиректория VC/bin установки Visual Studio¹ |
Intel (Windows) | Поддиректория Bin установки компилятора Intel |
Intel (Linux) | Поддиректория bin установки компилятора Intel |
Metrowerks | Поддиректория Other Metrowerks Tools/Command Line Tools установки CodeWarrior |
Comeau | Поддиректория bin установки Comeau |
Borland | Поддиректория Bin установки C++Builder, C++BuilderX или инструментов командной строки Borland |
¹ В предыдущих версиях Visual Studio директория VC называлась VC98 или Vc7 .
Читать дальше