Как установить Boost на Ubuntu

273

Я на Ubuntu, и я хочу установить Boost. Я пробовал с помощью

sudo apt-get install boost

Но такого пакета не было. Каков наилучший способ установки boost на Ubuntu?

Теги:
boost

5 ответов

504
Лучший ответ

Вы можете использовать команду apt-get (требуется sudo)

sudo apt-get install libboost-all-dev

Или вы можете позвонить

aptitude search boost

найдите нужные вам пакеты и установите их с помощью команды apt-get.

  • 1
    есть ли у вас опыт работы с надписью?
  • 1
    У меня был опыт программирования с boost, но не опыта установки. Я никогда не пробовал это сам, поэтому не могу сказать, насколько это легко использовать (но мне кажется, что менеджер пакетов - самый простой способ). Я должен был опубликовать это предложение как комментарий, но я не могу комментировать вопросы.
Показать ещё 11 комментариев
102

Получите версию Boost, которая вам нужна. Это для 1.55, но не стесняйтесь изменять или вручную загружать себя:

wget -O boost_1_55_0.tar.gz http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download
tar xzvf boost_1_55_0.tar.gz
cd boost_1_55_0/

Получить необходимые библиотеки, основные из которых icu для поддержки boost::regex:

sudo apt-get update
sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev

Настройка бутстрапа Boost:

./bootstrap.sh --prefix=/usr/

Затем постройте его с помощью

./b2

и в конечном итоге установить его:

sudo ./b2 install 
  • 2
    Какая будет разница, если мы используем ./bootstrap.sh --prefix = / usr / include? У меня есть библиотека повышения в / usr / include. Мне было интересно, что, делая это, я могу заменить мою старую установку?
  • 33
    что такое libboost-all-dev? почему я должен установить boost перед установкой boost?
Показать ещё 13 комментариев
49

Установка Boost на Ubuntu с примером использования массива boost:

Установить libboost-all-dev и aptitude

sudo apt-get install libboost-all-dev

sudo apt-get install aptitude

aptitude search boost

Затем вставьте это в файл С++ с именем main.cpp:

#include <iostream>
#include <boost/array.hpp>

using namespace std;
int main(){
  boost::array<int, 4> arr = {{1,2,3,4}};
  cout << "hi" << arr[0];
  return 0;
}

Скомпилируйте вот так:

g++ -o s main.cpp

Запустите его следующим образом:

./s

Печать программ:

hi1
  • 3
    В строке "boost :: array <int, 4> arr = {{1,2,3,4}};" есть ошибка, это должно быть "boost :: array <int, 4> arr = {1 , 2,3,4};»
  • 19
    почему я хочу запустить aptitude search boost ?
5

Получите версию Boost, которая вам нужна. Это для 1.55, но не стесняйтесь изменять или вручную загружать себя:

wget -O boost_1_55_0.tar.gz http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download
tar xzvf boost_1_55_0.tar.gz
cd boost_1_55_0/

Получить необходимые библиотеки, основные из которых - icu для поддержки boost:: regex:

sudo apt-get update
sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev build-essential libbz2-dev 

Настройка бутстрапа Boost:

./bootstrap.sh --prefix=/usr/local

Если мы хотим MPI, нам нужно установить флаг в файле user-config.jam:

user_configFile=`find $PWD -name user-config.jam`
echo "using mpi ;" >> $user_configFile

Найдите максимальное количество физических ядер:

n=`cat /proc/cpuinfo | grep "cpu cores" | uniq | awk '{print $NF}'`

Параллельно установите boost:

sudo ./b2 --with=all -j $n install 

Предположим, что у вас уже установлена ​​/usr/local/lib. если нет, вы можете добавить его в свой LD LIBRARY PATH:

sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf'

Reset ldconfig:

sudo ldconfig
  • 0
    Некоторые вещи, такие как PO Edit 2.0, требуют boost 1.6, который в настоящее время недоступен через apt-get, вы можете получить это на boost.org/users/history/version_1_60_0.html и затем развернуть его. Следуйте вышеприведенным инструкциям, помня, что LD Library Path не совпадает с $ PATH
  • 0
    Пожалуйста, измените ссылку на HTTPS; HTTP не безопасен для бинарных загрузок :)
Показать ещё 2 комментария
-2

На самом деле вам не нужно "устанавливать" или "компилировать" что-либо, прежде чем использовать boost в своем проекте. Вы можете просто загрузить и извлечь библиотеку boost в любое место на вашем компьютере, что обычно похоже на /usr/local/.

Когда вы компилируете свой код, вы можете просто указать компилятор, где найти библиотеки на -I. Например, g++ -I/usr/local/boost_1_59_0 xxx.hpp

Надеюсь, это поможет.

  • 6
    Это будет работать только для библиотек заголовка boost. Остальные из них должны быть собраны или установлены с использованием менеджера пакетов, как описано в ответах выше. Надлежащие библиотеки, которые требуют отдельного построения и установки, следующие: атомарные, хронологические, контейнерные, контекстные, сопрограммные, coroutine2, date_time, исключение, файловая система, граф, graph_parallel, iostreams, языковой стандарт, журнал, математика, mpi, program_options, python, random , регулярное выражение, сериализация, сигналы, система, тест, поток, таймер, type_erasure, волна.
  • 0
    Даже исправлять это решение, следуя дальнейшим инструкциям Элиаса Кускумвекакиса, было бы плохой идеей (если у вас нет веских причин), поскольку менеджеры пакетов добавляют возможность очень легко обновлять Boost до более новых версий (в Ubuntu - просто sudo apt update; sudo apt upgrade чтобы обновить все ваши пакеты до последних версий в репозиториях), если вы найдете подходящий репозиторий пакетов для Boost и очень легко удалите Boost из системы, если хотите. Ручной подход усложняет эти задачи, поэтому у вас должна быть веская причина, чтобы пропустить преимущества менеджера пакетов.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню