C++. Сборник рецептов | страница 42



. Однако в реальных проектах вам часто придется хранить исходные и двоичные файлы в различных директориях. В примере 1.8 Jam-файл можно поместить в любое место при условии, что вы укажете путь hello.cpp так, что он будет указывать на реальный файл hello.cpp.

Правило >install указывает Boost.Build скопировать один или несколько файлов, указанных как имена файлов или как имена главных целей, в указанное место. Вызов этого правила имеет вид, показанный в примере 1.10.

Пример 1.10. Вызов правила install

>install имя-цели

> : файлы

> : требования

> : сборка-по-умолчанию

> : требования-к-использованию

> ;

Здесь >имя-цели — это имя объявляемой цели, а >файлы — это список из одного или более файлов или целей, которые требуется скопировать. Остальные аргументы — >требования, >сборка-по-умолчанию и >требования-к-использованию — имеют такие же значения, как и в примере 1.9.

Место, куда файлы должны быть скопированы, может указываться либо как имя цели, либо как значение свойства >location требований цели. Например, в примере 1.8 можно написать цель >install следующим образом.

>install . : hello ;

Затем установка исполняемого файла выполняется так:

>> bjam .

Однако метод, использованный в примере 1.8, предпочтителен, так как проще запомнить именованную цель, чем путь файла.

Наконец, давайте быстро взглянем на синтаксис командной строки bjam. Чтобы собрать цель >xxx, используя инструментарий по умолчанию, введите команду:

>> bjam xxx

Чтобы собрать цель >xxx, используя инструментарий >yyy, введите команду:

>> bjam xxxtoolset=yyy

Чтобы собрать цель >xxx, используя версию >vvv инструментария >yyy, введите команду:

>> bjam хххtoolset=yyy-vvv

Чтобы в командной строке указать использовать при сборке стандартную библиотеку >zzz, используйте синтаксис:

>> bjamxxxstdlib=zzz

Чтобы собрать несколько целей одновременно, введите в командной строке несколько имен целей, а чтобы собрать все цели данного проекта, не указывайте целей. Следовательно, чтобы собрать и установить исполняемый файл из примера 1.9, просто введите:

>> bjam

Чтобы удалить все файлы, созданные в процессе сборки, включая исполняемый файл, введите:

>> bjam --clean

Свойство в виде ><функция>значение может быть указано в командной строке как >функция=значение.

Смотри также

Рецепты 1.2 и 1.15.

1.8. Сборка статической библиотеки с помощью Boost.Build

Проблема

Вы хотите использовать Boost.Build для сборки статической библиотеки из набора исходных файлов С++, таких как перечисленные в примере 1.1.