Cara menginstal Boost di Ubuntu


489

Saya di Ubuntu, dan saya ingin menginstal Boost. Saya mencoba

sudo apt-get install boost

Tetapi tidak ada paket seperti itu. Apa cara terbaik untuk menginstal Boost di Ubuntu?

Jawaban:


850

Anda dapat menggunakan apt-getperintah (membutuhkan sudo)

sudo apt-get install libboost-all-dev

Atau Anda bisa menelepon

aptitude search boost

temukan paket yang Anda butuhkan dan instal dengan menggunakan apt-getperintah.


3
apakah Anda memiliki pengalaman masa lalu dengan peningkatan?
k53sc

1
Saya memiliki pengalaman pemrograman dengan boost, tetapi bukan pengalaman instalasi. Saya belum pernah mencobanya sendiri, jadi saya tidak bisa mengatakan apakah itu mudah digunakan (tetapi bagi saya paket manager adalah cara termudah). Saya seharusnya memposting saran ini sebagai komentar, tetapi saya tidak bisa berkomentar.
Anton Guryanov

72
Satu-satunya kelemahan menggunakan apt-get adalah bahwa itu biasanya beberapa versi di belakang rilis boost terbaru.
Ralf

6
Sangat mudah untuk membangun dan menginstal Boost dari sumber, misalnya anycoder.wordpress.com/2014/04/28/building-boost
Andrew Selivanov

5
Jangan gunakan versi paket boost, saat ini di Ubuntu 16.04 itu 1.58, dan versi stabil terbaru adalah 1.67.0! Lihat tanggapan dan komentar saya di bawah ini: stackoverflow.com/a/41272796/2617716
Jeb

182

Dapatkan versi Peningkatan yang Anda butuhkan. Ini untuk 1,55 tetapi merasa bebas untuk mengubah atau mengunduh sendiri secara manual:

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/

Dapatkan perpustakaan yang diperlukan, yang utama adalah icuuntuk boost::regexdukungan:

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

Pengaturan bootstrap Boost:

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

Kemudian bangun dengan:

./b2

dan akhirnya menginstalnya:

sudo ./b2 install

2
Apa perbedaannya jika kita menggunakan ./bootstrap.sh --prefix = / usr / include? Saya memiliki perpustakaan boost di / usr / include. Saya bertanya-tanya bahwa dengan melakukan ini, dapatkah saya mengganti instalasi lama saya?
Sai

40
apa itu libboost-all-dev? mengapa saya harus menginstal boost sebelum menginstal boost?
javapowered

23
juga ./b2 installharus dieksekusi sebagai langkah terakhir
javapowered

21
@ tbc0 Boost ada di versi 1.59 sekarang, dan PPA terbaru di 1.55, jadi membangun dari sumber relevan
TemplateRex

5
@TemplateRex Saya menarik kembali komentar saya. Saya membatalkan unduhan saya.
tbc0

83

Menginstal Boost di Ubuntu dengan contoh penggunaan boost::array :

Instal libboost-all-dev dan aptitude:

sudo apt install libboost-all-dev

sudo apt install aptitude

aptitude search boost

Kemudian tempel ini ke file C ++ yang disebut 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;
}

Kompilasi seperti ini:

g++ -o s main.cpp

Jalankan seperti ini:

./s

Program mencetak:

hi1

3
Ada kesalahan di baris "boost :: array <int, 4> arr = {{1,2,3,4}};", seharusnya "boost :: array <int, 4> arr = {1 , 2,3,4}; "
szulak

36
mengapa saya ingin lari aptitude search boost?
Leedehai

24

Dapatkan versi Peningkatan yang Anda butuhkan. Ini untuk 1,55 tetapi jangan ragu untuk mengubah atau mengunduh diri Anda secara manual (Tingkatkan unduhan laman) :

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 /

Dapatkan perpustakaan yang diperlukan, yang utama adalah icu untuk meningkatkan :: dukungan regex:

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

Pengaturan bootstrap Boost:

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

Jika kita menginginkan MPI maka kita perlu mengatur flag pada file user-config.jam:

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

Temukan jumlah maksimum inti fisik:

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

Instal boost secara paralel:

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

Asumsikan Anda sudah memiliki / usr / local / lib setup. jika tidak, Anda dapat menambahkannya ke PATH LD LIBRARY Anda :

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

Setel ulang ldconfig:

sudo ldconfig

1
Beberapa hal seperti PO Edit 2.0 memerlukan boost 1.6, yang saat ini tidak tersedia melalui apt-get, Anda dapat memperolehnya dari boost.org/users/history/version_1_60_0.html dan kemudian perluas. Ikuti instruksi yang sangat baik di atas, mengingat bahwa LD Library Path tidak sama dengan $ PATH
Andrew Killen

Silakan ubah tautan ke HTTPS; HTTP tidak aman untuk unduhan biner :)
Clément

1
Komentar dari instalasi terbaru, untuk mendapatkan versi terbaru: - Buka unduhan boost.org dan "Rilis saat ini" untuk mendapatkan yang terakhir (saat ini 1.67.0: dl.bintray.com/boostorg/release/1.67.0/source / ... ) Terima kasih!
Jeb

haha ini mengacaukan sistem saya untuk selamanya. saya pikir ini 2 item terakhir.
thang

tautan lama ke sourceforge tidak berfungsi. gunakan dl.bintray.com/boostorg/release/1.72.0/source/… (dengan versi yang diperlukan)
Victor Gavro

18

Pembaruan untuk Aplikasi Ubuntu Windows 10 melalui Subsistem (juga berfungsi pada Ubuntu standar):

Anda mungkin mengalami masalah menemukan paket. Jika ya, jangan pernah takut! AKP ada di sini!

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

Lalu lari:

sudo apt-get install libboost-all-dev

1
OP tidak meminta Win10.
Adrian W

9
Saya sadar, memposting untuk mereka (Seperti saya) yang mencari solusi bulat. Mirip dengan Jawaban Алексей Штыков
x4g0tt3nSou1x

7
@AdrianW jawaban ini bukan tentang Windows 10. Ini tentang Ubuntu yang kebetulan berjalan pada kernel Windows 10 , jadi ini adalah solusi yang valid untuk mereka yang menjalankan Ubuntu dengan cara tertentu. Karena pertanyaannya tidak membatasi hanya untuk Ubuntu yang menjalankan kernel Linux, solusi ini baik-baik saja.
Chai T. Rex

1
Repositori ' ppa.launchpad.net/boost-latest/ppa/ubuntu xenial Release' tidak memiliki file Rilis.
user239558

1

Sebenarnya Anda tidak perlu "menginstal" atau "mengkompilasi" apa pun sebelum menggunakan Boost dalam proyek Anda. Anda bisa mengunduh dan mengekstrak pustaka Boost ke lokasi mana pun di mesin Anda, yang biasanya seperti itu /usr/local/.

Ketika Anda mengkompilasi kode Anda, Anda bisa menunjukkan kompiler di mana menemukan perpustakaan dengan -I. Sebagai contoh g++ -I /usr/local/boost_1_59_0 xxx.hpp,.


10
Ini hanya akan berfungsi untuk meningkatkan header perpustakaan. Sisanya perlu dibangun atau diinstal menggunakan manajer paket seperti yang dijelaskan dalam jawaban di atas. Pustaka pendorong yang memerlukan bangunan dan instalasi terpisah adalah sebagai berikut: atom, chrono, wadah, konteks, coroutine, coroutine2, date_time, pengecualian, sistem file, grafik, graph_parallel, iostreams, lokal, log, matematika, mpi, program_options, python, acak , regex, serialisasi, sinyal, sistem, pengujian, utas, timer, type_erasure, wave.
Elias Kouskoumvekakis

Bahkan memperbaiki solusi ini dengan mengikuti instruksi lebih lanjut Elias Kouskoumvekakis akan menjadi ide yang buruk (kecuali Anda memiliki alasan yang baik), karena manajer paket menambahkan kemampuan untuk dengan mudah memperbarui Peningkatan ke versi yang lebih baru (di Ubuntu, hanya sudo apt update; sudo apt upgradeuntuk meningkatkan semua paket Anda ke versi terbaru di repositori) jika Anda menemukan repositori paket yang sesuai untuk Boost dan untuk dengan mudah menghapus Boost dari sistem jika Anda mau. Pendekatan manual membuat tugas-tugas itu lebih sulit, jadi Anda perlu alasan yang baik untuk mengabaikan manfaat dari manajer paket.
Chai T. Rex

1
Juga, menginstal tanpa manajer paket lebih baik dicakup dalam jawaban sebelumnya , yang mencakup instruksi pembangunan yang diperlukan.
Chai T. Rex
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.