Boost — собрание библиотек, расширяющих C++. Cвободно распространяются по лицензии Boost Software License вместе с исходным кодом. Проект был создан после принятия стандарта C++, когда многие были недовольны не включением в стандарт некоторых библиотек. Проект является своего рода «испытательным полигоном» для различных расширений языка и часть библиотек являются кандидатами на включение в следующий стандарт C++.
Boost имеет заметную направленность на исследования и расширяемость (метапрограммирование и обобщённое программирование с активным использованием шаблонов). Благодаря тщательному подбору и контролю качества, библиотеки, включённые в Boost, обладают высокой надёжностью и производительностью. У "велосипедов" из boost существует огромное количество пользователей - С++ разработчиков, поэтому код библиотек boost является очень хорошо протестирован и является очень надёжным.
Крайне рекомендую данную коллекцию библиотек всем C++ разработчикам для использования в своих проектах. Вместо написания собственных велосипедов, лучше загляните в boost, не присутствует ли там уже готовое решение, поскольку качество вашего велосипеда будет насравнимо ниже чем boost'овского аналога, потому что пользователем вашего вилосипеда будете только вы и оттестировать его во всех возможных случаях вы не сможете физически. Если вас не совсем устроит эффективность некоторых библиотек из boost (как например boost::lexical_cast), то не забывайте, что библиотеки boost чрезвычайно гибки и вы всегда можете расширить функциональность того или иного велосипеда с помощью C++ шаблонов (скажем, специализировать шаблон boost::lexical_cast<> для определённого типа), предоставив свою "эффективную реализацию".
Сборка библиотеки Boost
- Качаем архив с исходными текстами здесь: http://www.boost.org/users/download/
- Распаковываем архив в директорию %BOOST_ROOT% (см. статью Development Environment Settings).
Все что вам надо знать на первое время - это:
%BOOST_ROOT%\ |---- tools - инструменты, в частности bjam |---- boost - заголовочные файлы boost |---- libs - документация |---- lib - динамические и статические библиотеки, появятся после сборки |---- index.html - начало знакомства с boost ...
Bjam - это мощная утилита, автоматизирующая процесс сборки. Boost.Build - это система сборки на базе bjam, набор скриптов для множества компиляторов, позволяет управлять ими через единый интерфейс. Т.е. вам не надо знать как, например, для gcc настроить precompiled headers…
Запускаем "%BOOST_ROOT%\tools\jam\build_dist.bat", который собирет bjam.exe
Теперь копируем bjam.exe из "%BOOST_ROOT%\tools\jam\stage\boost-jam-3.1.17-1-ntx86? в "%SystemRoot%\system32" или добавляем директорию "%BOOST_ROOT%\tools\jam\stage\boost-jam-3.1.17-1-ntx86" в системную переменную PATH. Что бы проверить, что все идет по плану - запускаем консоль и выполняем команду:
bjam.exe
В результате должны получить сообщение:
Unable to load Boost.Build: could not find "boost-build.jam" --------------------------------------------------------------- Attempted search from C:\Documents and Settings\Tanya up to the root and in these directories from BOOST_BUILD_PATH and BOOST_ROOT: D:\c++\libs\boost _trunk\tools\build\v21, D:\c++\libs\boost_trunk1. Please consult the documentation at 'http://www.boost.org'.Это сообщене говорит нам о том, что надо настроить Boost.Build. Для верной работы Boost.Build необходимо существование двух переменных: BOOST_ROOT - указывает на корневую директорию, куда мы изначально распаковали boost архив (см. статью Development Environment Settings) BOOST_BUILD_PATH - указывает на %BOOST_ROOT%\tools\build\v2 Важно! Не ставте слэши в конце! Напомню, что установить системные переменные можно в Панель управления -> Система -> Дополнительно -> Переменные среды -> Системные переменные Запускаем консоль и выполняем команду:
bjam.exe
Если вы получили следующее сообщение значит вы на правильном пути:
warning: No toolsets are configured. warning: Configuring default toolset "msvc". warning: If the default is wrong, your build may not work correctly. warning: Use the "toolset=xxxxx" option to override our guess. warning: For more configuration options, please consult warning: http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html error: error: no Jamfile in current directory found, and no target references sp ecified.
Создаем %BOOST_ROOT%\build.bat с содержимым:
@echo off bjam ^ -j2 ^ --toolset=msvc-8.0 ^ release debug ^ --without-math ^ --without-graph ^ --without-python ^ threading=multi link=static link=shared runtime-link=static runtime-link=shared ^ stage --stagedir="./lib"; pause-j2 - задействовать два ядра, с целью увеличения скорости компиляции --toolset=msvc-8.0 - инструмент с помощью которого собирать boost (gcc, msvc-8.0, msvc-9.0) release debug - без коментариев --without-math - не собирать Boost.Math --without-graph - не собирать Boost.Graph --without-python - не собирать Boost.Python threading=multi link=static link=shared runtime-link=static runtime-link=shared - настраиваем сборку, думаю тут все понятно stage - директория, в торорую будут помещены статические и динамические библиотеки Скажу сразу, что процесс сборки достаточно долгий, на моей машине он занимает около 20 минут и требует около 4гб места на диске.
Добавьте путь "$(BOOST_ROOT)" в список "Additional Include Directories" опций компиллятора.
Добавьте путь "$(BOOST_ROOT)\lib" в список "Additional Library Directories" опций линкера.
Многие добавляют эти пути в "Tools/Options/Projects and Solutions/VC++ Directories", однако я так не делаю, и вам не рекомендую, ибо "юзаю/неюзаю" boost есть свойство отдельно проекта, ну накрайняк solution'а, а никак не всей студии, ведь не все проекты, которые, возможно, у вас собираются, зависят от boost, соответсвенно нехрен всяким неандертальским проектам иметь видимость boost'овских заголовочных файлов.
Частично стянуто отсюда: http://www.gigamega.net/category/boost/
P.S.: Я Boost собираю следующим образом:
"bjam.exe" -j 12 --buid-dir="build" --build-type=complete --toolset=msvc-8.0 address-model=32 --stagedir="./lib" stage "bjam.exe" -j 12 --buid-dir="build" --build-type=complete --toolset=msvc-9.0 address-model=32 --stagedir="./lib" stage
P.P.S.: Улыбнуло мнение, взятое отсюда: http://www.gigamega.net/category/boost/ :):) :
Некоторые C++ программисты используют boost, некоторые о нем только слышали, некоторые - нет. Так вот, последние 2 категории - тупиковая ветвь развития (о тех, кому не позволяет железо или компилятор я не говорю), как правило, такие люди даже не доросли до стандартной библиотеки, а их стиль программирования можно назвать “Си с классами”.
P.P.S.: Удачи вам в использовании Boost в ваших проектах!
Для сборки с поддержкой ZLIB юзаем строку:
ОтветитьУдалить----------------------------------------
bjam --build-type=complete --toolset=msvc-8.0 --with-iostreams -sNO_COMPRESSION=0 -sNO_ZLIB=0 -sZLIB_SOURCE="f:\libraries\zlib_src" stage
----------------------------------------
They are really also a lot easier to stash absent compared for
ОтветитьУдалитьthe Cap Barbell adjustable ones, which you must unscrew if
you want to put them again to the plastic material circumstance.
Also visit my blog getfitnstrong.com
Power teaching isn't just for youthful individuals, either.
ОтветитьУдалитьHere is my web blog weight sets for sale
This is often great for a house gymnasium wherever you might have to drive the device outside of just
ОтветитьУдалитьhow, or perhaps it really is build on the second flooring exactly where it would not become
a fantastic plan to own a huge selection of lbs of excess weight placing regular strain about the
flooring joists.
Also visit my webpage :: http://Www.Getfitnstrong.com/adjustable-dumbbells/dumbbells-sale-further/
Location 1 knee up to the bench for help and the other to the floor and a single arm locked out to the
ОтветитьУдалитьbench.
Feel free to visit my web page ... sit up bench
As a end result the quantity of pounds one particular can take care of in a very barbell squat is restricted via the energy with
ОтветитьУдалитьthe lessen again.
Here is my blog ... bowflex selecttech 552
Energy teaching encourages your whole body to change only excess fat into power
ОтветитьУдалитьsimply because you have to have the muscular tissues to carry on
strength coaching.
Feel free to visit my web site; Recommended Internet page
Lift your upper entire body a handful of inches from the ground, preserving
ОтветитьУдалитьyour neck, shoulders, and head aligned.
Feel free to surf to my blog post ... http://www.getfitnstrong.com/adjustable-dumbbells/
Acquiring your stabilizing and main muscles can give you genuine environment strength, as opposed to fitness center machine energy.
ОтветитьУдалитьHere is my site ... click the up coming internet site
Are you able to assemble the body you'd like?
ОтветитьУдалитьHere is my weblog: bowflex selecttech 552 adjustable dumbbells pair
Some are specifically made for many who are taller and some absolutely are
ОтветитьУдалитьa bit much more compact; whilst you'll be able to typically change the stride on any Bowflex elliptical you do would like to test out a couple of distinctive designs in advance of purchasing the one particular which is ideal in your case.
my website: adjustable dumbbell set
In case you happen to be trying to identify a successful household gym which
ОтветитьУдалитьwill supply you which has a huge array of physical exercises apart with the bother of
pounds plates, the Bowflex PR3000 Dwelling
Gym could maybe be particularly whatever you ought to have.
My website; bowflex selecttech dumbbells
The Lifestyler 2800 may not be by far the most luxurious treadmill to the market, however it is great for anyone who need a quality work out that doesn't trigger don and tear on the system, and won't
ОтветитьУдалитьget during the technique for your home's natural magnificence.
Look into my web-site - http://Www.Getfitnstrong.com/bowflex-dumbbells/bowflex-adjustable-dumbbe...
As an alternative, like a spotter, the Bowflex makes you're employed hard the complete time!
ОтветитьУдалитьVisit my homepage; next page