Версия для печати темы
Форум на CrossPlatform.RU _ boost _ Как работать с буст?
Автор: ubuntu 24.12.2007, 9:12
Установил себе буст, если быть точней, то разархивировал.
И возник резонный вопрос: и что теперь?
Его нужно компилировать или как? Как с ним работать в студии?
Немного погуглил информация достаточно разрозненная, и пока непонятно вообще все.
p.s. это я типа решил изучить, новую для себя библиотеку.
Автор: Tonal 24.12.2007, 11:04
Boost - это набор библиотек интегрированных между собой.
Некоторые из этих библиотек - только набор заголовочных файлов, другие нужно собирать.
Для того, чтобы использовать какие-нибудь библиотеки из Boost, нужно прописать путь к boost-у в среде.
Если используешь библиотеки, которые надо собирать - их надо предварительно собрать. :-)
Автор: ubuntu 24.12.2007, 12:00
Ну с переменными средами все понятно, но как я узнаю, что нужно собирать, а что нет?
Извини за ламерский вопрос.
Автор: Andrew Selivanov 24.12.2007, 12:08
Цитата(ubuntu @ 24.12.2007, 13:00)
Ну с переменными средами все понятно, но как я узнаю, что нужно собирать, а что нет?
Извини за ламерский вопрос.
В boost собираются в lib-ы далеко не все библиотеки. Более того, собрать их можно по разному: static (dynamic) / multi threading, для gcc, для msvc etc. Для этого команда boost разработала свой сборщик - bjam. Его можно скачать в виде бинарника (bjam.exe) и положить в директорию которая есть в path (например windows...) или прописать для него свою директорию. Все, что собрано по умолчанию будет лежать в bin.v2. Рекомендую все собрать сразу (и release и debug версии)
Далее - когда ты подключаешь конкретные библиотеки (#include <boost/...>) и собираешь проект, на этапе линковки ты получишь ругань, следовательно данные библиотеки нужно подключать еще и в виде *.lib файлов к этапу линковки.
Автор: ubuntu 24.12.2007, 12:14
Во теперь понятно, буду пробовать.
Спасибо.
Автор: Tonal 24.12.2007, 21:13
Цитата(Andrew Selivanov @ 24.12.2007, 15:08)
Все, что собрано по умолчанию будет лежать в bin.v2. Рекомендую все собрать сразу (и release и debug версии)
У меня, по умолчанию все либки копируются в boost\stage\lib.
Кроме того, директорию можно выбирать.
Цитата(Andrew Selivanov @ 24.12.2007, 15:08)
Далее - когда ты подключаешь конкретные библиотеки (#include <boost/...>) и собираешь проект, на этапе линковки ты получишь ругань, следовательно данные библиотеки нужно подключать еще и в виде *.lib файлов к этапу линковки.
Если говорить о VC, то для него доступен авто-линк. При этом никаких библиотек явно к проекту подключать не надо, т.к. все необходимые для этого директивы (#pragma link) прописаны прям в хедерах.
Так что вся настройка студии заключается в прописывании путей до хедеров и либок boost-а.
Ну а какие библиотеки надо собмрать написано в справки к ним.
Я собираю только те, которые использую.
Автор: ubuntu 25.12.2007, 0:05
Цитата(Tonal @ 24.12.2007, 22:13)
Я собираю только те, которые использую.
Так, по этому поводу возник вопрос, как я понимаю, boost в основном используется для написания консольных приложений, так?
Поправьте меня, я не вижу другого применения ему, так как для GUI есть Qt, а что такого есть в boost, чего нет или нельзя сделать в том же Qt?
Автор: Tonal 25.12.2007, 8:03
Библиотеки Boost используются для написания любых приложений. :-)
И естественно, некоторые библиотеки Boost и Qt перекрываются. Но не все.
Например Spirit, MPL, lambda, bind...
Кроме того, часто есть резоны не использовать Qt в разработке - например, если код или библиотека будут использоваться вместе с другой GUI-ёвой библиотекой.
Ну а насчёт что можно или нельзя сделать с помощью Qt/Boost - всё можно сделать и без них, т.к. они обе написаны на С++. :-)
Автор: Andrew Selivanov 25.12.2007, 11:00
Цитата(Tonal @ 24.12.2007, 22:13)
Цитата(Andrew Selivanov @ 24.12.2007, 15:08)
Все, что собрано по умолчанию будет лежать в bin.v2. Рекомендую все собрать сразу (и release и debug версии)
У меня, по умолчанию все либки копируются в boost\stage\lib.
Кроме того, директорию можно выбирать.
Цитата(Andrew Selivanov @ 24.12.2007, 15:08)
Далее - когда ты подключаешь конкретные библиотеки (#include <boost/...>) и собираешь проект, на этапе линковки ты получишь ругань, следовательно данные библиотеки нужно подключать еще и в виде *.lib файлов к этапу линковки.
Если говорить о VC, то для него доступен авто-линк. При этом никаких библиотек явно к проекту подключать не надо, т.к. все необходимые для этого директивы (#pragma link) прописаны прям в хедерах.
Так что вся настройка студии заключается в прописывании путей до хедеров и либок boost-а.
Ну а какие библиотеки надо собмрать написано в справки к ним.
Я собираю только те, которые использую.
Гм, ни разу не пользовался boost-ом в студии
и все пути к либам (во всяком случае под mingw) я прописываю явно
можно конечно было положить их в одну папку, но мне так показалось удобнее (знаю, знаю, извращение, грешен
Надо попробовать под студию...
Автор: Admin 25.1.2008, 18:26
Тема разделена, дальнейшее обсуждение перенесено в тему: http://www.forum.crossplatform.ru/index.php?showtopic=331.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)