C++. Сборник рецептов
Шрифт:
Некоторые часто используемые функции и их возможные значения перечислены в табл. 1.15.
Табл. 1.15. Часто используемые функции Boost.Build
| Функция | Значение | Эффект |
|---|---|---|
| include | Path | Определяет путь для поиска заголовочных файлов |
| define | name=[value] | Определяет макрос |
| threading | multi или single | Включает или отключает поддержку потоков |
| runtime-link | static
shared | Определяет тип компоновки с библиотекой времени выполнения¹ |
| variant | debug или release | Запрашивает отладочную или окончательную сборку |
¹ См. рецепт 1.23.
Когда собирается целевой исполняемый файл, или цель, соответствующая статической или динамической библиотеке, файл, соответствующий этой цели, создается в директории, дочерней по отношению к директории, содержащей Jam-файл. Относительным путь этой директории зависит от инструментария и конфигурации сборки, но он всегда начинается с bin. Например, исполняемый файл из примера 1.8 может быть создан в директории bin/msvc/debug.
Для простоты я попросил вас создать Jam-файл из примера 1.8 в той же директории, в которой находится исходный файл hello.cpp. Однако в реальных проектах вам часто придется хранить исходные и двоичные файлы в различных директориях. В примере 1.8 Jam-файл можно поместить в любое место при условии, что вы укажете путь hello.cpp так, что он будет указывать на реальный файл hello.cpp.
Правило
Пример 1.10. Вызов правила install
Здесь
Место, куда файлы должны быть скопированы, может указываться либо как имя цели, либо как значение свойства
Затем установка исполняемого файла выполняется так:
Однако метод, использованный в примере 1.8, предпочтителен, так как проще запомнить именованную цель, чем путь файла.
Наконец, давайте быстро взглянем на синтаксис командной строки bjam. Чтобы собрать цель
Чтобы собрать цель
Чтобы собрать цель
Чтобы
в командной строке указать использовать при сборке стандартную библиотекуЧтобы собрать несколько целей одновременно, введите в командной строке несколько имен целей, а чтобы собрать все цели данного проекта, не указывайте целей. Следовательно, чтобы собрать и установить исполняемый файл из примера 1.9, просто введите:
Чтобы удалить все файлы, созданные в процессе сборки, включая исполняемый файл, введите:
Свойство в виде
Рецепты 1.2 и 1.15.
1.8. Сборка статической библиотеки с помощью Boost.Build
Вы хотите использовать Boost.Build для сборки статической библиотеки из набора исходных файлов С++, таких как перечисленные в примере 1.1.
В директории, где вы хотите создать статическую библиотеку, создайте файл Jamroot. В файле Jamroot вызовите правило
Например, чтобы собрать статическую библиотеку из исходных файлов, перечисленных в примере 1.1, ваш Jamroot может выглядеть как в примере 1.11.
Пример 1.11. Jam файл для сборки статической библиотеки libjohnpaul.lib или libjohnpaul.a
Чтобы собрать библиотеку, введите:
Правило