C++. Сборник рецептов - [20]
>using intel : 7.1 : "C:/Program Files/Intel/Compiler70/IA32/Bin/icl" ;
>using intel : 8.0 : "C./Program Files/Intel/CPP/Compiler80/IA32/Bin/icl" ;
Имена, используемые Boost.Build для нескольких разных инструментариев, описываемых в этой главе, приведены в табл 1.14.
Табл. 1.14. Имена инструментариев Boost.Build
Инструментарий | Имя |
---|---|
GCC | gcc |
Visual C++ | msvc |
Intel | intel |
Metrowerks | cw |
Comeau | como |
Borland | borland |
Digital Mars | dmc |
1.7. Сборка простого приложения «Hello, World» с помощью Boost.Build
Вы хотите собрать простую программу «Hello, World», подобную приведенной в примере 1.4, с помощью BoostBuild.
В директории, где вы хотите создать исполняемый файл и все создаваемые при этом промежуточные файлы, создайте текстовый файл с именем Jamroot. В файле Jamroot укажите два правила, приведенных далее. Во-первых, укажите правило exe, объявляющее целевой исполняемый файл и исходные файлы .cpp. Далее укажите правило >install
, определяющее имя целевого исполняемого файла и директорию, в которую его следует устанавливать. Наконец, запустите bjam, чтобы собрать программу.
Например, чтобы собрать исполняемый файл hello или hello.exe из файла hello.cpp из примера 1.4, создайте в директории, содержащей файл hello.cpp, файл с именем Jamroot с содержимым, показанным в примере 1.8.
Пример 1.8. Jamfile для проекта hello
># jamfile для проекта hello
>exe hello : hello.cpp ;
>install dist : hello :
Далее перейдите в директорию, содержащую hello.cpp и Jamroot, и введите следующую команду.
>> bjam hello
Эта команда собирает исполняемый файл hello или hello.exe в поддиректории текущей директории. Наконец, введите команду:
>> bjam dist
Эта команда копирует исполняемый файл в директорию, указанную в свойстве >location
, которое в нашем случае равно текущей директории.
>bjam hello
введите >bjam --v2 hello
.
Файл Jamroot является примером файла Jamfile. В то время как для управления небольшим набором исходных файлов C++ можно использовать один Jam-файл, большой набор файлов обычно требует нескольких Jam-файлов с иерархической организацией. Каждый Jam-файл находится в отдельной директории и соответствует отдельному проекту. Большая часть Jam-файлов просто называется Jamfile, но самый верхний Jam-файл — Jam-файл, который расположен в директории, родительской по отношению ко всем другим директориям, содержащим остальные Jam-файлы, — называется Jamroot. Проект, определяемый этим верхним Jam- файлом, называется корнем проекта. Каждый проект, за исключением корня проекта, имеет родительский проект определяемый проектом, расположенным в ближайшей к нему родительской директории, содержащей Jam-файл.
Эта иерархическая организация обладает большими преимуществами: например, она облегчает применение к проекту и всем его дочерним проектам требований, таких как поддержка потоков.
Каждый проект — это набор целей. Цели объявляются с помощью вызова правил, таких как правило >exe
и правило >install
. Большая часть целей соответствует двоичным файлам или, более точно, набору связанных двоичных файлов, таких как отладочная и финальная (релиз) сборки приложения.
Правило >exe
используется для объявления исполняемой цели. Вызов этого правила имеет вид, показанный в примере 1.9.
Пример 1.9. Вызов правила exe
>exe имя-целевого-файла
> : исходные-файлы
> : требования
> : сборка-по-умолчанию
> : требования-к-использованию
> ;
Здесь >имя-целевого-файла
определяет имя исполняемого файла, >исходные-файлы
определяет список исходных файлов и библиотек, требования определяет свойства, которые должны применяться к цели независимо от каких-либо дополнительных свойств, указанных в командной строке или унаследованных от другого проекта, >сборка-по-умолчанию
определяет свойства, которые будут применены к цели, если не явно запрошено другое значение свойства, и >требования-к-использованию
определяет свойства, которые будут переданы всем остальным целям, зависящим от данной цели.
Свойства указываются в виде ><функция>значение
. Например, чтобы объявить исполняемый файл, который будет всегда собираться с поддержкой потоков, вы должны написать:
>exe hello
> : hello.cpp
> :
> ;
Некоторые часто используемые функции и их возможные значения перечислены в табл. 1.15.
Табл. 1.15. Часто используемые функции Boost.Build
Функция | Значение | Эффект |
---|---|---|
include | Path | Определяет путь для поиска заголовочных файлов |
define | name=[value] | Определяет макрос |
threading | >multi или >single | Включает или отключает поддержку потоков |
runtime-link | >static или >shared | Определяет тип компоновки с библиотекой времени выполнения¹ |
variant | >debug или >release | Запрашивает отладочную или окончательную сборку |
¹ См. рецепт 1.23.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.