วิธีติดตั้ง 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
ฉันมีประสบการณ์การเขียนโปรแกรมพร้อมการเพิ่ม แต่ไม่ใช่ประสบการณ์การติดตั้ง ฉันไม่เคยลองด้วยตัวเองดังนั้นฉันจึงไม่สามารถพูดได้ว่ามันใช้งานง่าย (แต่สำหรับฉันดูเหมือนว่าผู้จัดการแพคเกจเป็นวิธีที่ง่ายที่สุด) ฉันควรโพสต์ข้อเสนอแนะนี้เป็นความคิดเห็น แต่ฉันไม่สามารถแสดงความคิดเห็นคำถาม
Anton Guryanov

71
ข้อเสียอย่างหนึ่งของการใช้ apt-get คือโดยปกติแล้วมันจะเป็นเวอร์ชั่นที่อยู่หลังรุ่นบูสต์รุ่นล่าสุด
Ralf

6
มันง่ายในการสร้างและติดตั้ง Boost จากแหล่งต่าง ๆ เช่นanycoder.wordpress.com/2014/04/28/building-boost
Andrew Selivanov

5
อย่าใช้บูสต์เวอร์ชั่นเสริมตอนนี้บน Ubuntu 16.04 เป็น 1.58 และเวอร์ชั่นเสถียรล่าสุดคือ 1.67.0! ดูคำตอบและความคิดเห็นของฉันด้านล่าง: stackoverflow.com/a/41272796/2617716
Jeb

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

การตั้งค่า bootstrap ของ Boost:

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

จากนั้นสร้างด้วย:

./b2

และติดตั้งในที่สุด:

sudo ./b2 install

2
ถ้าเราใช้. /bootstrap.sh --prefix = / usr / include จะแตกต่างกันอย่างไร ฉันมีห้องสมุดเพิ่มใน / usr / รวม ฉันสงสัยว่าเมื่อทำสิ่งนี้ฉันจะสามารถแทนที่การติดตั้งเก่าได้หรือไม่
Sai

40
libboost-all-dev คืออะไร เหตุใดฉันจึงควรติดตั้งบูสต์ก่อนติดตั้งบูสต์
javapowered

23
ก็./b2 installควรจะดำเนินการเป็นขั้นตอนสุดท้าย
javapowered

21
@ tbc0 Boost เป็นรุ่น 1.59 ในขณะนี้และ PPA ล่าสุดอยู่ที่ 1.55 ดังนั้นการสร้างแหล่งที่มาจึงมีความเกี่ยวข้อง
TemplateRex

5
@TemplateRex ฉันถอนความคิดเห็นของฉัน ฉันเลิก downvote ของฉัน
tbc0

83

การติดตั้ง Boost บน Ubuntu ด้วยตัวอย่างของการใช้boost::array:

ติดตั้ง libboost-all-dev และ aptitude:

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 สำหรับ boost :: regex support:

sudo apt-get update
sudo apt-get ติดตั้ง build-essential g ++ python-dev autotools-dev libicu-dev libbz2-dev 

การตั้งค่า bootstrap ของ Boost:

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

ถ้าเราต้องการ MPI เราจำเป็นต้องตั้งค่าสถานะในไฟล์ user-config.jam:

user_configFile = `ค้นหา $ PWD -name user-config.jam`
echo "using mpi;" >> $ user_configFile

ค้นหาจำนวนแกนทางกายภาพสูงสุด:

n = `cat / proc / cpuinfo | grep "cpu cores" | uniq | awk '{พิมพ์ $ NF}' '

ติดตั้งบูสต์แบบขนาน:

sudo ./b2 --with = ทั้งหมด -j $ n ติดตั้ง 

สมมติว่าคุณมีการตั้งค่า/ usr / local / libแล้ว ถ้าไม่คุณสามารถเพิ่มลงในLIBRARY PATHของคุณ:

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 Library นั้นไม่เหมือนกับ $ PATH
Andrew Killen

กรุณาเปลี่ยนลิงค์เป็น HTTPS; HTTP ไม่ปลอดภัยสำหรับการดาวน์โหลดไบนารี :)
Clément

1
ความคิดเห็นจากการติดตั้งล่าสุดเพื่อรับเวอร์ชันล่าสุด: - ไปที่boost.orgและดาวน์โหลด "รุ่นปัจจุบัน" เพื่อรับไฟล์ล่าสุด (ปัจจุบัน 1.67.0: dl.bintray.com/boostorg/release/1.67.0/source / … ) ขอบคุณ!
Jeb

ฮ่าฮ่าสิ่งนี้ทำให้ระบบของฉันดีขึ้น ฉันคิดว่ามันเป็น 2 รายการสุดท้าย
Thang

ลิงก์เก่าไปยัง sourceforge ไม่ทำงาน ใช้dl.bintray.com/boostorg/release/1.72.0/source/… (พร้อมรุ่นที่จำเป็น)
Victor Gavro

18

การอัปเดตสำหรับแอปพลิเคชัน Ubuntu 10 ของ Windows ผ่านทางระบบย่อย (ยังทำงานบน Ubuntu มาตรฐาน):

คุณอาจมีปัญหาในการค้นหาแพ็คเกจ ถ้าคุณทำไม่ต้องกลัว! PPA อยู่ที่นี่!

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

จากนั้นเรียกใช้:

sudo apt-get install libboost-all-dev

1
OP ไม่ได้ขอ Win10
เอเดรียน W

9
ฉันรู้ว่าการโพสต์สำหรับผู้ที่ (เช่นฉัน) ที่กำลังมองหาวิธีการแก้ปัญหาโค้งมน แอพที่คล้ายกับАлексейШтыковคำตอบ
x4g0tt3nSou1x

7
@AdrianW คำตอบนี้ไม่เกี่ยวกับ Windows 10 เป็นเรื่องเกี่ยวกับUbuntu ที่เกิดขึ้นกับการทำงานบนเคอร์เนล Windows 10ดังนั้นจึงเป็นทางออกที่ถูกต้องสำหรับผู้ที่ใช้งาน Ubuntu ในบางวิธี เนื่องจากคำถามไม่ได้ จำกัด เฉพาะอูบุนตูที่ใช้งานเคอร์เนลลินุกซ์โดยเฉพาะการแก้ปัญหานี้ก็ใช้ได้
Chai T. Rex

1
ที่เก็บข้อมูล ' ppa.launchpad.net/boost-latest/ppa/ubuntu xenial Release' ไม่มีไฟล์ 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, ล็อก, คณิตศาสตร์, mpi, program_options, python, random , regex, การทำให้เป็นอนุกรม, สัญญาณ, ระบบ, การทดสอบ, เธรด, ตัวจับเวลา, type_erasure, wave
Elias Kouskoumvekakis

แม้แต่การแก้ไขปัญหานี้โดยทำตามคำแนะนำเพิ่มเติมของ Elias Kouskoumvekakis จะเป็นความคิดที่ไม่ดี (เว้นแต่คุณจะมีเหตุผลที่ดี) เนื่องจากผู้จัดการแพ็คเกจเพิ่มความสามารถในการอัปเดต Boost เป็นเวอร์ชันใหม่อย่างง่ายดาย (ใน Ubuntu เพียงsudo apt update; sudo apt upgradeเพื่ออัพเกรดแพ็คเกจทั้งหมดของคุณเป็น เวอร์ชันล่าสุดในที่เก็บ) หากคุณค้นหาที่เก็บแพ็กเกจที่เหมาะสมสำหรับ Boost และเพื่อลบ Boost ออกจากระบบได้อย่างง่ายดายหากคุณต้องการ แนวทางแบบแมนนวลทำให้งานเหล่านั้นยากขึ้นดังนั้นคุณต้องมีเหตุผลที่ดีในการข้ามประโยชน์ของตัวจัดการแพคเกจ
Chai T. Rex

1
นอกจากนี้การติดตั้งโดยไม่ต้องใช้ตัวจัดการแพ็กเกจจะครอบคลุมในคำตอบก่อนหน้าซึ่งดีกว่าซึ่งรวมถึงคำแนะนำการสร้างที่จำเป็น
Chai T. Rex
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.