:
:
:
;
Здесь
— это имя объявляемой цели, а
— это список из одного или более файлов или целей, которые требуется скопировать. Остальные аргументы —
,
и
— имеют такие же значения, как и в примере 1.9.
Место, куда файлы должны быть скопированы, может указываться либо как имя цели, либо как значение свойства location
требований цели. Например, в примере 1.8 можно написать цель install
следующим образом.
install . : hello ;
Затем установка исполняемого файла выполняется так:
> bjam .
Однако метод, использованный в примере 1.8, предпочтителен, так как проще запомнить именованную цель, чем путь файла.
Наконец, давайте быстро взглянем на синтаксис командной строки
, используя инструментарий по умолчанию, введите команду:
> bjam
Чтобы собрать цель
, используя инструментарий
, введите команду:
> bjam
Чтобы собрать цель
, используя версию
инструментария
, введите команду:
> bjam
Чтобы в командной строке указать использовать при сборке стандартную библиотеку
, используйте синтаксис:
> bjam
Чтобы собрать несколько целей одновременно, введите в командной строке несколько имен целей, а чтобы собрать все цели данного проекта, не указывайте целей. Следовательно, чтобы собрать и установить исполняемый файл из примера 1.9, просто введите:
> bjam
Чтобы удалить все файлы, созданные в процессе сборки, включая исполняемый файл, введите:
> bjam --clean
Свойство в виде <
может быть указано в командной строке как
.
Рецепты 1.2 и 1.15.
1.8. Сборка статической библиотеки с помощью Boost.Build
Вы хотите использовать Boost.Build для сборки статической библиотеки из набора исходных файлов С++, таких как перечисленные в примере 1.1.
В директории, где вы хотите создать статическую библиотеку, создайте файл lib
, объявляющее целевую библиотеку, указав в качестве исходных файлов свои файлы <link>static
. Чтобы указать директорию поиска заголовочных файлов библиотеки, т. е. директорию, относительно которой должны разрешаться директивы include
для заголовочных файлов этой библиотеки, добавьте требование к использованию в виде <include>
. Чтобы указать компилятору, где искать включенные заголовки, может потребоваться использовать несколько директив вида <include>
. Наконец, в директории, содержащей
Например, чтобы собрать статическую библиотеку из исходных файлов, перечисленных в примере 1.1, ваш
# Jamfile для проекта libjohnpaul
lib libjohnpaul
: # исходники
john.cpp paul.cpp johnpaul.cpp
: # требования
<link>static
: # сборка-по-умолчанию
: # требования-к-использованию
<include>..
;
Чтобы собрать библиотеку, введите:
> bjam libjohnpaul
Правило lib
используется для объявления цели, представляющей статическую или динамическую библиотеку. Как показано в примере 1.9, оно имеет такой же вид, что и правило exe. Использование требования <include>..
освобождает проект, который зависит от вашей библиотеки, от необходимости явно указывать в своих требованиях директорию заголовочных файлов вашей библиотеки. Требование <link>static
указывает, что ваша цель должна всегда собираться как статическая библиотека. Если вы хотите сохранить возможность сборки целевой библиотеки как статической и как динамической, опустите требование <link>static
. Должна ли библиотека собираться как статическая или как динамическая, может быть указано в командной строке или в требованиях цели, которая зависит от целевой библиотеки. Например, если в примере 1.11 требование <link>static
опустить, то чтобы собрать цель libjohnpaul
как статическую библиотеку, потребуется ввести команду:
> bjam libjohnpaul link=static
Однако написание исходного кода для библиотеки, которая может быть собрана и как статическая, и как динамическая, является нетривиальной задачей, что показано в рецепте 1.9.