Як встановити Boost на Ubuntu


489

Я на Ubuntu, і я хочу встановити Boost. Я спробував

sudo apt-get install boost

Але такого пакету не було. Який найкращий спосіб встановити Boost на Ubuntu?

Відповіді:


849

Ви можете використовувати apt-getкоманду (потрібно sudo)

sudo apt-get install libboost-all-dev

Або ви можете зателефонувати

aptitude search boost

знайти потрібні пакети та встановити їх за допомогою apt-getкоманди.


3
у вас є досвід минулого з імпульсом?
k53sc

1
У мене був досвід програмування з підвищенням, але не досвід встановлення. Я сам ніколи цього не пробував, тому не можу сказати, чи він простий у використанні (але мені здається, що менеджер пакунків - це найпростіший спосіб). Я повинен був розмістити цю пропозицію як коментар, але я не можу коментувати питання.
Антон Гур’янов

71
Єдиним недоліком використання apt-get є те, що зазвичай за парами останньої версії для підсилення зазвичай є пара версій.
Ральф

6
Зробити та встановити Boost досить просто з джерел, наприклад anycoder.wordpress.com/2014/04/28/building-boost
Андрій Селіванов

5
Не використовуйте упаковану версію boost, зараз на Ubuntu 16.04 це 1.58, а остання стабільна версія - 1.67.0! Дивіться відповідь і мій коментар нижче: stackoverflow.com/a/41272796/2617716
Джеб

182

Отримайте потрібну версію Boost. Це для 1,55, але сміливо змінюйте або завантажуйте вручну:

wget -O boost_1_55_0.tar.gz https://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 / включити? У мене є бібліотека підвищення в / usr / include. Мені було цікаво, що, роблячи це, чи можу я замінити стару установку?
Сай

40
що таке libboost-all-dev? чому я повинен встановити boost перед встановленням boost?
Javapowered

23
також ./b2 installповинен бути виконаний як останній крок
javapowered

21
@ tbc0 Boost знаходиться у версії 1.59, а останній PPA - у 1.55, тому будівництво з джерела є релевантним
TemplateRex

5
@TemplateRex Я відкликаю свій коментар. Я розв’язав свій голос
tbc0

83

Встановлення Boost на Ubuntu з прикладом використання boost::array:

Встановіть libboost-all-dev та здатність:

sudo apt install libboost-all-dev

sudo apt install aptitude

aptitude search boost

Потім вставте це у файл C ++ під назвою 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}; "
szulak

36
чому я хочу бігати aptitude search boost?
Leedehai

23

Отримайте потрібну версію Boost. Це для 1,55, але не соромтесь змінювати або завантажувати вручну (Збільшити сторінку завантаження) :

wget -O boost_1_55_0.tar.gz https://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 for boost :: підтримка regex:

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

Налаштування завантаження Boost:

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

Якщо ми хочемо MPI, нам потрібно встановити прапор у файлі user-config.jam:

user_configFile = `знайти $ PWD-ім'я користувача-config.jam`
ехо "за допомогою mpi;" >> $ user_configFile

Знайдіть максимальну кількість фізичних ядер:

n = `кішка / proc / cpuinfo | grep "процесорні сердечники" | uniq | awk '{print $ NF}' `

Паралельно встановіть прискорення:

sudo ./b2 --with = all -j $ n встановити 

Передбачає, що ви вже налаштували / usr / local / lib . якщо ні, то ви можете додати її до своєї бібліотечної бібліотеки :

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

Скидання ldconfig:

sudo ldconfig

1
Для деяких речей, таких як PO Edit 2.0, потрібно збільшити 1.6, який наразі недоступний через apt-get, ви можете отримати це з boost.org/users/history/version_1_60_0.html і потім розгорнути його. Дотримуйтесь чудових інструкцій, наведених вище, пам’ятаючи, що шлях до бібліотеки LD не такий, як $ PATH
Ендрю Кіллен

Будь ласка, змініть посилання на HTTPS; HTTP не безпечний для двійкових завантажень :)
Clément

1
Прокоментуйте нещодавню установку, щоб отримати останню версію: - Перейдіть на boost.org та завантажуйте "Поточний реліз", щоб отримати останню (наразі 1.67.0: dl.bintray.com/boostorg/release/1.67.0/source /… ) Дякую!
Джеб

ха-ха це накручує мою систему назавжди. Я думаю, що це останні 2 пункти.
thang

стара посилання на sourceforge не працює. використовувати dl.bintray.com/boostorg/release/1.72.0/source/… (потрібна версія)
Віктор Гавро

18

Оновлення додатка Ubuntu для Windows 10 через підсистему (також працює на стандартній Ubuntu):

У вас можуть виникнути проблеми з пошуком пакета. Якщо так, ніколи не бійтеся! PPA тут!

sudo add-apt-repository ppa:boost-latest/ppa
sudo apt-get update

Потім запустіть:

sudo apt-get install libboost-all-dev

1
ОП не просив Win10.
Адріан Ш

9
Я знаю, розміщую повідомлення для тих (як я), які шукали рішення. Подібно до відповіді Алексей Штыков
x4g0tt3nSou1x

7
@AdrianW ця відповідь не стосується Windows 10. Це Ubuntu, який, як правило, працює на ядрі Windows 10 , тому це правильне рішення для тих, хто працює з Ubuntu якимось чином. Оскільки питання не обмежило його лише Ubuntu, що працює на Linux ядрі, це рішення чудово.
Чай Т. Рекс

1
Репозиторій ' ppa.launchpad.net/boost-latest/ppa/ubuntu xenial Release' не має файлу випуску.
user239558

1

Насправді вам не потрібно нічого "встановлювати" чи "компілювати" перед тим, як використовувати Boost у своєму проекті. Ви можете просто завантажити та витягнути бібліотеку Boost у будь-яке місце на вашій машині, що зазвичай подобається /usr/local/.

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


10
Це буде працювати лише для заголовних бібліотек підсилення. Решту з них потрібно буде скласти або встановити за допомогою менеджера пакунків, як описано у вищенаведених відповідях. Бібліотеки підсилення, які потребують окремої побудови та встановлення, є такими: atomic, chrono, контейнер, контекст, coroutine, coroutine2, date_time, виняток, файлова система, графік, graph_parallel, iostreams, locale, log, math, mpi, program_options, python, random , регулярний вираз, серіалізація, сигнали, система, тест, потік, таймер, type_erasure, хвиля.
Elias Kouskoumvekakis

Навіть ремонт цього рішення, дотримуючись подальших інструкцій Elias Kouskoumvekakis, було б поганою ідеєю (якщо у вас немає вагомих причин), оскільки менеджери пакунків додають можливість дуже легко оновлювати Boost до новіших версій (в Ubuntu - лише sudo apt update; sudo apt upgradeоновлення всіх ваших пакетів до останні версії в сховищах), якщо ви знайдете відповідне сховище пакетів для Boost і дуже легко видалити Boost з системи, якщо ви хочете. Ручний підхід ускладнює ці завдання, тому вам потрібна вагома причина для того, щоб пропустити переваги менеджера пакунків.
Чай Т. Рекс

1
Крім того, установка без менеджера пакунків краще висвітлюється в попередній відповіді , яка включає необхідні інструкції щодо створення.
Чай Т. Рекс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.