Ubuntu'ya Boost nasıl kurulur


489

Ubuntu'dayım ve Boost'u kurmak istiyorum. İle denedim

sudo apt-get install boost

Ama böyle bir paket yoktu. Ubuntu'ya Boost'u kurmanın en iyi yolu nedir?

Yanıtlar:


849

apt-getKomutu kullanabilirsiniz (gerektirir sudo)

sudo apt-get install libboost-all-dev

Veya arayabilirsin

aptitude search boost

İhtiyacınız olan paketleri bulun ve apt-getkomutu kullanarak yükleyin .


3
takviye ile ilgili geçmiş tecrübeniz var mı?
k53sc

1
Geliştirme ile programlama deneyimim vardı, ancak kurulum deneyimim yoktu. Bunu kendim hiç denemedim, bu yüzden kullanımı kolay olup olmadığını söyleyemem (ancak paket yöneticisinin en kolay yol olduğunu düşünüyorum). Bu öneriyi yorum olarak göndermeliydim, ancak soruları yorumlayamıyorum.
Anton Guryanov

71
Apt-get kullanmanın bir dezavantajı, genellikle en son yükseltme sürümünün arkasında birkaç sürüm olmasıdır.
Ralf

6
Boost'u kaynaklardan kurmak ve kurmak kolaydır, örneğin anycoder.wordpress.com/2014/04/28/building-boost
Andrew Selivanov

5
Paketin güçlendirilmiş sürümünü kullanmayın, şu anda Ubuntu 16.04'te 1.58 ve en son kararlı sürüm 1.67.0! Aşağıdaki yanıta ve
Jeb

182

İstediğiniz Boost sürümünü edinin. Bu 1.55 içindir, ancak kendinizi değiştirmek veya manuel olarak indirmek için çekinmeyin:

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/

Gerekli kütüphaneleri alın, temel olanlar icuiçin boost::regexdestek:

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'un önyükleme kurulumu:

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

Sonra ile inşa et:

./b2

ve sonunda yükleyin:

sudo ./b2 install

2
./Bootstrap.sh --prefix = / usr / include komutunu kullanırsak fark ne olur? / Usr / include içindeki destek kütüphanem var. Bunu yaparak eski kurulumumu değiştirebileceğimi merak ediyordum.
Sai

40
libboost-all-dev nedir? boost'u yüklemeden önce neden boost yüklemeliyim?
javapowered

23
Ayrıca ./b2 installson adım olarak idam edilmelidir
javapowered

21
@ tbc0 Boost 1.59 sürümündedir ve en son PPA 1.55'tedir, bu nedenle kaynaktan bina önemlidir
TemplateRex

5
@TemplateRex Yorumumu geri çekiyorum. Aşağı oyumu çözdüm.
tbc0

83

Bir örnek kullanarak Ubuntu'ya Boost yükleme boost::array:

Libboost-all-dev ve yeteneklerini yükleyin:

sudo apt install libboost-all-dev

sudo apt install aptitude

aptitude search boost

Sonra bunu şu adlı bir C ++ dosyasına yapıştırın 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;
}

Aşağıdaki gibi derleyin:

g++ -o s main.cpp

Bu şekilde çalıştırın:

./s

Program çıktıları:

hi1

3
"Boost :: dizi <int, 4> arr = {{1,2,3,4}};" satırında bir hata var, "boost :: dizi <int, 4> arr = {1 olmalıdır , 2,3,4};"
szulak

36
neden koşmak istiyorum aptitude search boost?
Leedehai

23

İstediğiniz Boost sürümünü edinin. Bu 1.55 içindir, ancak kendinizi değiştirmek veya manuel olarak indirmek için çekinmeyin (İndirme sayfasını artırın) :

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 desteği_1_55_0 /

Gerekli kütüphaneleri alın, ana olanlar boost için icu'dur: regex desteği:

sudo uygun-güncelleme
sudo uygun-get install build-essential g ++ python-dev autotools-dev libicu-dev libbz2-dev 

Boost'un önyükleme kurulumu:

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

MPI istiyorsak, bayrağı user-config.jam dosyasında ayarlamamız gerekir:

user_configFile = `$ PWD -adı kullan user-config.jam`
echo "mpi kullanarak;" >> $ user_configFile

Maksimum fiziksel çekirdek sayısını bulun:

n = `kedi / proc / cpuinfo | grep "cpu çekirdekleri" | uniq | awk '{print $ NF}' '

Takviyeyi paralel kurun:

sudo ./b2 --with = tümü -j $ n kurulum 

Zaten / usr / local / lib kurulumunuz olduğunu varsayar . değilse, LD KÜTÜPHANE YOLUNUZA ekleyebilirsiniz :

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

Ldconfig dosyasını sıfırlayın:

sudo ldconfig

1
PO Edit 2.0 gibi bazı şeyler, şu anda apt-get yoluyla kullanılamayan boost 1.6 gerektirir, bunu boost.org/users/history/version_1_60_0.html adresinden alabilir ve genişletebilirsiniz. LD Kütüphane Yolunun $ PATH ile aynı olmadığını hatırlayarak yukarıdaki mükemmel talimatları izleyin
Andrew Killen

Lütfen bağlantıyı HTTPS olarak değiştirin; HTTP, ikili indirmeler için güvenli değildir :)
Clément

1
En son sürümü almak için son kurulumdan yorum yapın: - Son sürümü almak için boost.org ve "Mevcut sürüm" indirmelerine gidin (şu anda 1.67.0: dl.bintray.com/boostorg/release/1.67.0/source /… ) Teşekkürler!
Jeb

haha bu sistemimi iyice kapatıyor. bence son 2 ürün.
thang

sourceforge'a eski bağlantı çalışmıyor. dl.bintray.com/boostorg/release/1.72.0/source/… kullanın (gerekli sürümle)
Victor Gavro

18

Alt Sistem üzerinden Windows 10 Ubuntu Uygulaması için bir güncelleştirme (standart Ubuntu üzerinde de çalışır):

Paketi bulmakta sorun yaşayabilirsiniz. Eğer yaparsan, asla korkma! PPA burada!

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

O zaman koş:

sudo apt-get install libboost-all-dev

1
OP Win10 istemedi.
Adrian W

9
Yuvarlak bir çözüm arayanlara (Benim gibi) mesaj attığımı biliyorum. Алексей Штыков Cevap
x4g0tt3nSou1x

7
@AdrianW bu cevap Windows 10 ile ilgili değildir. Bu , Windows 10 çekirdeğinde çalışan Ubuntu ile ilgilidir, bu nedenle Ubuntu'yu bir şekilde çalıştıranlar için geçerli bir çözümdür. Soru, özellikle Linux çekirdeğinde çalışan Ubuntu ile sınırlı olmadığından, bu çözüm gayet iyi.
Chai T. Rex

1
' Ppa.launchpad.net/boost-latest/ppa/ubuntu xenial Release' deposunun bir Release dosyası yok.
user239558

1

Aslında projenizde Boost'u kullanmadan önce herhangi bir "kurulum" ya da "derleme" gerekmez. Boost kütüphanesini indirip makinenizdeki herhangi bir konuma çıkarabilirsiniz./usr/local/ .

Kodunuzu derlerken, derleyiciye kitaplıkların nerede bulunacağını belirtebilirsiniz -I. Örneğin g++ -I /usr/local/boost_1_59_0 xxx.hpp,.


10
Bu yalnızca destek başlık kütüphanelerinde işe yarar. Diğerlerinin yukarıdaki cevaplarda açıklandığı gibi bir paket yöneticisi kullanılarak oluşturulması veya kurulması gerekir. Ayrı bina ve kurulum gerektiren yükseltme kütüphaneleri şunlardır: atomik, krono, konteyner, bağlam, program, ortak program2, tarih_saat, istisna, dosya sistemi, grafik, grafik_paralel, iostreams, yerel ayar, günlük, matematik, mpi, program_options, python, rasgele , normal ifade, serileştirme, sinyaller, sistem, test, iplik, zamanlayıcı, type_erasure, dalga.
Elias Kouskoumvekakis

Hatta sadece, (Eğer iyi bir nedeniniz olmadıkça) paket yöneticileri Ubuntu (daha yeni sürümleri için çok kolay güncelleme Boost özelliği ekler beri, kötü bir fikir olacağını Elias Kouskoumvekakis en ileri talimatları uygulayarak bu çözüm tamir sudo apt update; sudo apt upgradeyükseltmek için tüm için paketler Boost için uygun paket deposunu bulursanız ve isterseniz Boost'u sistemden kolayca silebilirsiniz. Manuel yaklaşım bu görevleri zorlaştırır, bu nedenle bir paket yöneticisinin avantajlarını atlamak için iyi bir nedene ihtiyacınız vardır.
Chai T. Rex

1
Ayrıca, bir paket yöneticisi olmadan yükleme , gerekli bina talimatlarını içeren daha önceki bir cevapta daha iyi kapsanır .
Chai T. Rex
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.