пятница, сентября 05, 2008

Использование библиотек из Boost Libraries в своих проектах


В прошлом посте про юнит тестирование на С++ я упомянул про фреймворк boost::test. Сейчас активно с ним играюсь, пытаюсь найти всю возможную информацию про него и вообще про boost в целом. Как оказалось, информации на русском в сети очень мало - какие-то обрывки переводов документации здесь и это почти всё. Хуже того, и в офлайне с книгами тоже всё плохо. Есть книжка про Boost Graph Library из серии “Библиотека программиста”. Но это всего лишь об одной библиотеке из почти сотни. Наверное, есть главы с кратким описанием библиотеки в толстых книгах про шаблоны С++, хотя не уверен. Так что без чтения документации на английском видимо никак не обойтись.

На английском есть книга Beyond the C++ Standard Library: An Introduction to Boost. Я точно знаю, что где-то есть её электронные копии, но пока их не нашёл. Так что пока основной источник знаний для меня - документация с сайта www.boost.org, благо она достаточно неплохая, её по крайней мере в отличие от MSDN читать можно. Я скачал последнюю версию boost’а - 1.36.0, весит правда немало - zip файл порядка 55 Мб.

Чтобы построить бинарные файлы из исходников нужно ещё отдельно скачать утилиту Boost Jam оттуда же с сайта. В принципе для очень многих библиотек никаких бинарных файлов и вовсе не нужно - чтобы их использовать достаточно вставить  в свой проект строчку типа

#include <boost/SOME_LIB.hpp>


и всё. Но некоторые библиотеки, например boost::regex для встраивания перлообразных регулярных выражений в C++ код всё же требуют бинарных .lib файлов. Кроме того, в поставку boost’а входят исходники несколько утилит, которые компилируются также при помощи Boost Jam (bjam.exe).


В частности есть весьма полезная утилитка bcp. Если не хочется включать в проект все исходники Boost’а для всех возможных библиотек (а их ОЧЕНЬ много), с помощью этой утилиты можно выдрать только необходимые. Я наткнулся на неё благодаря этой статье в блоге Alex Ott’а.


То есть если нужны, к примеру, только unit test’ы, то при помощи команды:


> bcp boost/test/unit_test.hpp c:\tmp\boost_test


мы получим в каталоге c:\tmp\boost_test всё, что нужно для фреймворка для юнит тестирования. Остаётся включить полученное в свой проект и можно вовсю “экстремально программировать” :)


Что почитать ещё:
P.S. Подсказали, где в сети лежит Beyond the C++ Standard Library: An Introduction to Boost.

Отправить комментарий