Как установить библиотеку boost c linux

(C++ | Boost) Настраиваем WSL для разработки под Linux для сборки из Visual Studio

Сегодня мы постараемся разобрать все узкие момент настройки среды разработки под Linux из ОС Windows с использованием бустов, с++ и подсистемы линукс (WSL). В данном руководстве, как новичек в с++ (пришел из dotnet), я отчаянно нуждался весь вчерашний вечер. Информация была крайне разрозненна и мне пришлось все собирать по-частям, чтобы довести среду до рабочего состояния, в которой можно и «нужно» разрабатывать.
Как говорил один из преподавателей по плюсам:

Плюсы без бустов — деньги на ветер

И это действительно так! Поэтому мы соберем среду для возможной работы с бустами и статической сборкой.

Определимся с планом:

  • Установить компоненты для разработки под Linux из VS
  • Активировать подситему WSL
  • Установка и настройка компонентов, включая boost
  • Создание, конфигурирование и построение проекта

  • Открываем Visual Studio Installer

  • Выбираем необходимую рабочую нагрузку

После установки нужных компонентов, перезапускаем компьютер и переходим к следующему этапу.

Данный шаг вы можете пропустить, если Вам удобнее работать с любой другой виртуальной машиной.

  • Открываем Мой Компьютер — Удалить или изменить программы — Программы и компоненты — Включение или отключение компонентов Windows
  • Активируем подсистему Linux

После применения изменений в ОС — система попросит перезагрузить компьютер.

  • После перезагруки компьютера — открываем Microsoft Store
  • В поиске ищем — Debian (также доступны различные варианты подсистемы)
  • Устанавливаем пакет
  • Запускаем пакет Debian
  • Вводим ваш логин и пароль
  • Система установлена (Для ее активации Вы можете использовать команду в коммандрой строке «wsl» или запускать по загруженному пакету (Debian)

  • Установим основные пакеты необходимые интеграции с IDE
  • Скачаем wget (для скачивания библиотек boost) и активируем ssh
  • Соберем буст в статической сборке (если кому-то не нужна статическая сборка — опускаем параметр link=static)

Если шаги прошли успешно — Ваша подсистема готова для сборки консольных проектов C++ с использованием библиотек Boost (Запомните или запишите путь к библиотекам указанные как на изображениия, у вас могут отличаться).

Запускаем Visual Studio и создаем проект «Консольное приложение» для ОС Linux

Открываем надстройки приложения -> Диспетчер подключений -> Вводим данные ssh (Для wsl адрес ssh является локальным адресом машины текущей ОС).

После настройки соединения с подсистемой необходимо добавить зависимости Boost.

Добавление каталога библиотек:

На этом приключения не завершаются! Rsync вытянет с wsl заголовки, но компоновщик будет постоянно выдавать ошибку компоновки. Для того, чтобы Ваш проект был построен удачно, необходимо добавить вручную пусть к статическим библиотекам:

Данным действием мы явно указываем, где находится наши статические библиотеки, т.е. если у нас 1 и более библиотеки, синтаксис будет следующий:

Где libboost_filesystem.a и libboost_thread.a название библиотек, которые включаются и используются в проекте.
После всех манипуляций, простой проект со следующим исходным кодом успешно компилируется.


Подведем итоги, мы успешно установили и настроли подсистему WSL для разработки под Linux с использованием языка С++ и библиотек Boost. Настроили среду разработки и собрали необходимые библиотеки на стороне WSL.

Источник

How to install Boost on Ubuntu

I’m on Ubuntu, and I want to install Boost. I tried with

But there was no such package. What is the best way to install Boost on Ubuntu?

9 Answers 9

You can use apt-get command (requires sudo )

Or you can call

find packages you need and install them using the apt-get command.

Get the version of Boost that you require. This is for 1.55 but feel free to change or manually download yourself:

Get the required libraries, main ones are icu for boost::regex support:

Boost’s bootstrap setup:

Then build it with:

and eventually install it:

Installing Boost on Ubuntu with an example of using boost::array :

Install libboost-all-dev and aptitude:

Then paste this into a C++ file called main.cpp :

Compile like this:

Run it like this:

Get the version of Boost that you require. This is for 1.55 but feel free to change or manually download yourself (Boost download page):

Get the required libraries, main ones are icu for boost::regex support:

Читайте также:  Как удалить обновиться до windows 10

Boost’s bootstrap setup:

If we want MPI then we need to set the flag in the user-config.jam file:

Find the maximum number of physical cores:

Install boost in parallel:

Assumes you have /usr/local/lib setup already. if not, you can add it to your LD LIBRARY PATH:

Источник

Линукс новичок, где поставить буст библиотеки?

Я не очень хорошо знаком с файловой системой linux, перейдя из Windows, но у меня есть приличный опыт работы с C ++ и библиотеками Boost в Windows. Сменив Fedora 17, может ли кто-нибудь сказать мне, есть ли определенный каталог, в который я должен установить Boost, чтобы заставить его работать с компилятором GNU?

Примечание: если это важно, я не использую IDE. Я использую vim для большей части своего программирования.

4 ответа

Используйте свой менеджер пакетов для установки расширенных библиотек, для debian ubuntu это примерно так:

Для centos6 это

Из введения в усиление:

Вы можете положить его куда угодно. И затем вы компилируете что-то вроде этого

» c++ » может быть, например, g++ или clang++ .

У меня возникли проблемы с установкой boost с помощью yum (недавно установили Fedora 17). поэтому я разархивировал tar-файл boost в свой / opt .

Так что g++ -I /opt/boost/boost_1_51_0 работает как шарм.

Есть несколько способов настроить библиотеки ускорения в Linux.

Избавьте себя от боли, используйте диспетчер пакетов для установки библиотек Boost. Вы будете благодарны в конечном итоге.

Если вам абсолютно необходимо сделать это самостоятельно, просто поместите его в любое место, если оно находится в пути включения gcc. Это /usr/local/include/ или /usr/include/ для заголовков и /usr/local/lib/ или /usr/lib/ для библиотек.

Наконец, если по какой-то причине это невозможно, используйте переключатель -I с g ++, чтобы указать путь для повышения. (но это было бы необходимо только в том случае, если 1 и 2 невозможны)

Источник

Установка boost в Debian

Apt-get установил мне boost в /usr/include/boost/ и /usr/lib/x86_64-linux-gnu/. Версия буста 1.55. Но последняя на данный момент 1.60. Правильно ли я понимаю, что дебиан официально не обеспечивает возможностью установки 1.60 при помощи apt-get?

Я хочу установить в эти директории последнюю версию буста — релизную и дебажную, оптимизированные по скорости, скомпилированные последней версией gcc. А также задать для системных переменных значения по аналогии с результатом выполнения apt-get. Какие команды мне для этого нужно выполнить?

Меня, разумеется, интересует, как установить, а не как скачать.

никак если нет в репозитарии то значит эту версию никто туда не положил. Если тебя мучает православие и хочешь через АПТ то ищи репозитарий подключай его и устанавливай.

Нет. Я имею в виду, какие конкретно команды в распакованной папке выполнить, чтобы в результате получить то, что мне нужно?

Никакие команды не выполняй, если не хочешь угробить систему. Не надо в бинарном дистрибутиве делать кашу из вручную собранных и установленных программ. Тем более boost — это довольно важный компонент, на который завязано много прочих программ.

boost, конечно, обеспечивает обратную совместимость, но всё же проблемы с более новой версией возникнут. Кроме всего прочего у тебя сейчас установлена версия 1.55, а ты хочешь поверх установить 1.60, что вообще нехорошо.

Ну и зачем тебе самая распоследняя версия, чем не устраивает версия 1.55? Т.е. ты ясно можешь сказать, что дескать тебе нужен такой-то функционал, которого нет в установленной версии?

Если не можешь, то используй ту, что идёт с дистрибутивом.

Так же ты можешь попробовать настроить смешивание веток Debian, подключив репозиторий от Sid, нестабильной версии Debian, настроить, что из этой ветки ты хочешь поставить boost и установить этот пакет. В Sid сейчас boost версии 1.58: https://packages.debian.org/ru/source/sid/boost-defaults

По experimental ветке сведений нет, но думаю там как раз 1.60.

С другой стороны, если тебе нужны распоследние версии пакетов, то тебе, например на Arch Linux, ну либо Gentoo.

Костыли Костылики

Вот этого не надо.

Ну и зачем тебе самая распоследняя версия, чем не устраивает версия 1.55? Т.е. ты ясно можешь сказать, что дескать тебе нужен такой-то функционал, которого нет в установленной версии?

Я планирую собирать свой сервер под Debian. Сейчас у меня используется 1.60. Поэтому у меня такие вопросы.

1) Я не уверен, что виндовый клиент будет компилиться в VS2015 с 1.55, поэтому совместимы ли boost::serialize 1.55 и 1.60?

Читайте также:  Tp link tg 3468 драйвер windows server

2) Собран ли стандартный для текущего дебиана буст с оптимизацией по скорости?

3) Разработчики debian не спешат обновлять boost, потому что он не достаточно протестирован? Или они не видят смысла его обновлять?

4) Наверное необязательно заменять, 1.55 на 1.60. Можно размещать его рядом в include и lib. И я готов не менять системную переменную. Как можно установить дебаг и релиз с оптимизацией по скорости, используя последнюю версию gcc?

И ещё причина, по которой я хочу использовать последний boost, есть ли там оптимизации в последнем boost::serialize по скорости относительно 1.55? Для меня очень важно, чтобы сериализация работала быстро.

Сейчас у меня используется 1.60. Поэтому у меня такие вопросы.

И что? Пробуй собирать с младшей версией Boost.

Я планирую собирать свой сервер под Debian.

Нафейхуа было использовать Boost-1.60, если в Debian более младшая версия? В начале нужно определиться с особенностями целевой системы.

Я не уверен, что виндовый клиент будет компилиться в VS2015 с 1.55, поэтому совместимы ли boost::serialize 1.55 и 1.60?

Собран ли стандартный для текущего дебиана буст с оптимизацией по скорости?

Изучи src пакет для deb пакета с boost и определи с какими опциями собирается boost, почитай Changelog.

Разработчики debian не спешат обновлять boost, потому что он не достаточно протестирован?

Если тебе нужны свежие версии пакетов, то ты выбрал не тот дистрибутив. Версия boost-1.55 относится к релизу Debian Jessie, т.е. текущему стабильному релизу Debian. Так вот, если бы ты почитал политику Debian относительно выпуска релизов и обновлений к ним, то узнал бы, что версии программ в пакетах не обновляются, а лишь выпускаются исправления к текущим версиям. Т.е. как был выпущен релиз Debian Jessie 25 апреля 2015 года с фиксированными версиями программ, так эти версии программ и останутся на весь срок поддержки релиза, будут лишь накладываться патчи исходники этих версий для исправления ошибок, сами версии останутся без изменений. Т.е. как была в Debian Jessie версия boost-1.55, так она и останется, будет меняться только ревизия пакета, когда в Boost-1.55 найдут ошибку наложат на исходники Boost-1.55 патч и пересоберут пакет.

Наверное необязательно заменять, 1.55 на 1.60. Можно размещать его рядом в include и lib.

И всё же я советую тебе попробовать собрать твой проект с Boost-1.55.

Как можно установить дебаг и релиз с оптимизацией по скорости, используя последнюю версию gcc?

Почитай документацию по gcc, ну либо документацию по Gentoo. Ну и где ты в Debian нашёл последнюю версию gcc?

Источник

Boost

Boost является одной из самых известных и наиболее часто используемых программистами С++ библиотек. Сейчас сложно даже представить область программирования (веду речь про С++), где бы не использовался boost или хотя бы отдельные его части. На самом деле буст это общее название, своеобразное знамя, собирающее под собой целую кучу различных библиотек, которые охватывают огромное количество повседневных задач. Именно из-за того, что boost значительно упрощает и ускоряет разработку ПО, он и завоевал такую большую популярность. Естественно, boost используется и при разработке игр, по тем же самым причинам: экономия времени, надёжность, проверенность временем, широкая известность (легко найти нужных программистов), простота использования.

Не подумайте, что я пишу все эти статьи по установке “лишнего” софта только от того, что мне нечего больше написать – просто этот софт нам понадобится уже в самых ближайших уроках и без него вы не сможете продолжить создание наших с вами общих игр.

Где взять Boost

Boost это свободное программное обеспечение и скачать его исходники можно с официального сайта . Кстати, там же находится и полная документация по всем его компонентам .

Компоненты Boost

Как я уже сказал, в состав boost входит довольно большое количество библиотек. Кстати, большой плюс буста в том, что он является кроссплатформенным, т.е. он работает и под Windows, и под Linux, и под MacOS – то есть под большинством наиболее распространённых операционных систем. И для того, что бы портировать вашу программу из-под Windows, например, под MacOS, вам не нужно будет даже прикасаться к коду, использующему boost – достаточно просто перекомпилировать программу и всё будет работать.

Наиболее часто используются следующие компоненты Boost:

  • boost::asio – библиотека работы с сетью. Через некоторое время я покажу в уроках как его использовать.
  • boost::bind – очень часто используемая библиотека, в ней находятся враперы для простого использования фукнторов, указателей на функции и т.д.
  • boost::CRC – библиотека функций CRC (контрольные суммы)
  • boost::DateTime – функции работы с датой/временем/периодами времени
  • boost::Filesystem – функции работы с фалами и файловой системой
  • boost::Function – врапперы для отложенного вызова функций и реализации коллбэков
  • boost::Interprocess – функции для межпроцессоного взаимодействия. С их помощью разные процессы (программы) могут общаться друг с другом.
  • boost::Pool – функционал для работы с пуллами
  • boost::ProgramOptions – функции для простой работы с опицями программы
  • boost::Python – обёртки для простой интеграции питона в ваши приложения или расшаривания ваших функций и библиотек в питон
  • boost::Regex – библиотека для работы с регулярными выражениям
  • boost::Serialization – сериализация и десериализация объектов. Можно использовать, например, для созхранения состояния игры в файл и для чтения из файла.
  • boost::Signals/Signals2 – реализации концепции сигналов/слотов. Например, с помощью этой библиотеки можно организовать обмен сообщениями (между монстрами в игре, скажем)
  • boost::SmartPtr – крайне часто используемая библиотека, реализующая концепцию умных указателей. Работать без неё просто невозможно )))
  • ну и ещё много-много разных других компонент
Читайте также:  Windows installer cleanup utility где находится

Компиляция Boost

Часть библиотек из состава boost не требуют установки и вы можете использовать их просто через инклюды. Но значительную часть, всё же, придётся для начала скомпилировать в библиотеки. Самый простой метод, это использовать boost-jam. Скачайте его вот тут , вам нужен архив, который назвается (в данный момент последняя версия) boost-jam-3.1.18-1-ntx86.zip. В этом архиве находится файл bjam.exe , его надо поместить в какую-то папку, которая прописана в системе в переменной %PATH%. Я обычно кидаю его в C:/Windows/

Есть и более правильный способ: просто запустите в папке boost’а файлик bootstrap.bat – он соберёт для вас bjam последней версии, это надёжнее и более правильно.

Что бы посмотреть все доступные опции сборки надо ввести команду:

До начала сборки самого буста позаботьтесь о том, что бы на диске было свободно хотя бы 3-4 гигабайта свободного места. Ага, буст это штука немаленькая. Однако, не волнуйтесь – когда вы будете собирать свои программы с использованием буст, они не будут разрастаться до гигабайтных размеров – просто буст собирает все библиотеки в куче разных вариантов (линковки), да и потом, при сборке ваших программ, в них будут добавляться лишь реально используемые вами функции буста, а вовсе не вся библиотека. Если какие-то из вариантов линковки вы не собираетесь использовать никогда – вы можете отключить их компиляцию и тогда сборка буста пройдёт существенно быстрее. Однако, никогда наперёд не знаешь, понадобиться оно или нет, потому лучше скомпилировать всё – пусть будет, лишним не будет.

Итак, давайте запустим сборку:

Я отключил сорку буст-питон, т.к. он нам не нужен. Если вам он нужен и питон (включая исходники и либы) стоит у вас на компе – не отключайте его.

Теперь можно налить себе кофе, включить любимый сериал и долго-долго смотреть его… Процесс компиляции буста очень (ну оооочень) не быстрый. Я вас очень прошу – сделайте сборку буста сами, не пытайтесь найти где скачать её в сети – даже если вы сможете найти, есть очень большая вероятность, что она у вас просто не зработает…

Во время компиляции может сыпаться довольного много варнингов – просто не обращайте на них внимания – сборка всё равно должна пройти успешно.

В зависимости от мощности вашего компьютера, где-то через 20-60 минут сборка буста закончится. В папке boost’а появится новая папка “stage/libs” – в ней лежат все собранные библиотеки буста.

Подключение Boost к Visual C++

Осталось только добавить эту папку в список папок билиотек Visual Studio. И в список папок-инклюдов добавить “ваша_папка_где_буст/boost” – там лежат инклюды буста, а в либы добавлем папку “где_лежит_буст/stage/lib”. На этом установка буста закончена и он готов к использованию. Что бы убедиться в этом, вы можете взять любой пример с сайта boost’а и попробовать его скомпилировать.

Этот урок закончен. В следующем уроке я расскажу вам о том, как поставить и настроить luabind, который сильно упростит нам жизнь, а точнее позволит более просто использовать lua-скрипты в наших программах.

Если у вас возникнут какие-либо трудности при установке буста, напишите в комментах – я постараюсь помочь каждому обратившемуся.

Источник

Оцените статью