उबंटू पर बूस्ट कैसे स्थापित करें


489

मैं उबंटू में हूं, और मैं बूस्ट स्थापित करना चाहता हूं। मैंने कोशिश की

sudo apt-get install boost

लेकिन ऐसा कोई पैकेज नहीं था। उबंटू पर बूस्ट स्थापित करने का सबसे अच्छा तरीका क्या है?

जवाबों:


849

आप apt-getकमांड (आवश्यकता sudo) का उपयोग कर सकते हैं

sudo apt-get install libboost-all-dev

या आप कॉल कर सकते हैं

aptitude search boost

उन पैकेजों को ढूंढें जिनकी आपको आवश्यकता है और उन्हें apt-getकमांड का उपयोग करके इंस्टॉल करें ।


3
क्या आपके पास बूस्ट के साथ कोई पिछला अनुभव है?
k53sc

1
मुझे बढ़ावा देने के साथ प्रोग्रामिंग का अनुभव था, लेकिन स्थापना का अनुभव नहीं। मैंने कभी भी यह स्वयं करने की कोशिश नहीं की है, इसलिए मैं यह नहीं कह सकता कि क्या इसका उपयोग करना आसान है (लेकिन यह मुझे लगता है कि पैकेज प्रबंधक सबसे आसान तरीका है)। मुझे इस सुझाव को एक टिप्पणी के रूप में पोस्ट करना चाहिए था, लेकिन मैं प्रश्नों पर टिप्पणी नहीं कर सकता।
एंटोन गुरानोव

71
एप्ट-गेट का उपयोग करने का एक नुकसान यह है कि यह आमतौर पर नवीनतम बढ़ावा देने के पीछे संस्करण का एक जोड़ा है।
राल्फ

6
स्रोतों से बूस्ट का निर्माण और स्थापित करना आसान है, उदाहरण के लिए anycoder.wordpress.com/2014/04/28/building-boost
एंड्रयू

5
बूस्ट किए गए संस्करण का उपयोग न करें, अभी Ubuntu 16.04 पर यह 1.58 है, और नवीनतम स्थिर संस्करण 1.67.0 है! प्रतिक्रिया और नीचे मेरी टिप्पणी देखें: stackoverflow.com/a/41272796/2617716
जेब

182

आपको आवश्यक बूस्ट का संस्करण प्राप्त करें। यह 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.sh --prefix=/usr/

फिर इसके साथ निर्माण करें:

./b2

और अंत में इसे स्थापित करें:

sudo ./b2 install

2
यदि हम उपयोग करते हैं तो क्या अंतर होगा ।/bootstrap.sh --prefix = / usr / शामिल? मेरे पास बूस्ट लाइब्रेरी / usr / शामिल है। मैं सोच रहा था कि ऐसा करने से क्या मैं अपनी पुरानी स्थापना को बदल सकता हूँ?
साईं

40
libboost-all-dev क्या है? मुझे बूस्ट लगाने से पहले बूस्ट क्यों लगाना चाहिए?
javapowered

23
./b2 installअंतिम चरण के रूप में भी निष्पादित किया जाना चाहिए
javapowered

21
@ tbc0 बूस्ट अभी संस्करण 1.59 पर है, और नवीनतम पीपीए 1.55 पर है, इसलिए स्रोत से निर्माण प्रासंगिक है
टेम्पलेटरेक्स

5
@TemplateRex मैं अपनी टिप्पणी को वापस लेता हूं। मैंने अपने पतन को कम नहीं किया।
tbc0

83

उपयोग करने के उदाहरण के साथ उबंटू पर बूस्ट स्थापित करना 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
लाइन में एक त्रुटि है "बढ़ावा :: सरणी <int, 4> गिरफ्तारी = {{1,2,3,4}};", यह "बढ़ावा देना चाहिए :: सरणी <int, 4> गिरफ्तार = {1 , 2,3,4}, "
16

36
मैं क्यों भागना चाहता हूँ aptitude search boost?
लीडेहाई

23

आपको आवश्यक बूस्ट का संस्करण प्राप्त करें। यह 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
सीडी बूस्ट_1_55_0 /

आवश्यक पुस्तकालय प्राप्त करें, मुख्य लोग बढ़ावा देने के लिए प्रतिष्ठित हैं :: regex समर्थन:

sudo apt-get update
sudo apt-get install बिल्ड-एसेंशियल g ++ python-dev ऑटोटॉल्स-देव लिबीकु-देव libbz2-dev 

बूस्ट का बूटस्ट्रैप सेटअप:

./bootstrap.sh - उपसर्ग = / usr / स्थानीय

यदि हम MPI चाहते हैं तो हमें user-config.jam फ़ाइल में ध्वज सेट करना होगा:

user_configFile = `$ PWD -name उपयोगकर्ता-config.jam` खोजें
गूंज "एमपीआई का उपयोग करना?" >> $ user_configFile

भौतिक कोर की अधिकतम संख्या ज्ञात करें:

n = `बिल्ली / proc / cpuinfo | grep "cpu कोर" | यूनीक | awk '{प्रिंट $ NF}' '

समानांतर में बढ़ावा स्थापित करें:

sudo ./b2 --with = all -j $ n इंस्टॉल करें 

आपके पास पहले से ही usr / usr / local / lib सेटअप है। यदि नहीं, तो आप इसे अपने LD LIBRARY PATH में जोड़ सकते हैं :

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

Ldconfig रीसेट करें:

सुडो ldconfig

1
पीओ एडिट 2.0 जैसी कुछ चीजों को बूस्ट 1.6 की आवश्यकता होती है, जो कि इस समय उपलब्ध नहीं है। उपयुक्त-प्राप्त करने के बाद आप इसे बूस्टर से प्राप्त कर सकते हैं । ऊपर दिए गए उत्कृष्ट निर्देशों का पालन करते हुए, याद रखें कि LD लाइब्रेरी पथ $ PATH जैसा नहीं है
एंड्रयू किलेन

कृपया लिंक को HTTPS में बदलें; बाइनरी डाउनलोड के लिए HTTP सुरक्षित नहीं है :)
Clément

1
हाल ही के इंस्टॉलेशन से टिप्पणी करें, नवीनतम संस्करण प्राप्त करने के लिए: - पिछले एक को प्राप्त करने के लिए boost.org और "वर्तमान रिलीज़" डाउनलोड पर जाएं (वर्तमान में 1.67.0: dl.bintray.com/boostorg/release/1.67.0/source /… ) धन्यवाद!
जेब

इस प्रणाली को अच्छे के लिए मेरे ऊपर शिकंजा। मुझे लगता है कि यह अंतिम 2 आइटम हैं।
थांग

sourceforge का पुराना लिंक काम नहीं कर रहा है। dl.bintray.com/boostorg/release/1.72.0/source/… (आवश्यक संस्करण के साथ) का उपयोग करें
विक्टर गैवरो

18

सबसिस्टम के माध्यम से विंडोज 10 उबंटू एप्लिकेशन के लिए एक अपडेट (मानक उबंटू पर भी काम करता है):

आपको पैकेज खोजने में समस्या हो सकती है। यदि आप करते हैं, तो कभी डरो मत! 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 यह उत्तर विंडोज 10 के बारे में नहीं है। यह उबंटू के बारे में है जो विंडोज 10 कर्नेल पर चलने वाला है , इसलिए यह उबंटू को किसी तरह से चलाने वालों के लिए एक वैध समाधान है। चूँकि प्रश्न ने इसे लिनक्स कर्नेल पर विशेष रूप से चलने वाले उबंटू तक सीमित नहीं किया, इसलिए यह समाधान ठीक है।
चाई टी। रेक्स

1
रिपॉजिटरी ' ppa.launchpad.net/boost-latest/ppa/ubuntu xenial रिलीज़' में रिलीज़ फ़ाइल नहीं है।
user239558

1

वास्तव में आपको अपने प्रोजेक्ट में Boost का उपयोग करने से पहले "इंस्टॉल" या "संकलन" कुछ भी करने की आवश्यकता नहीं है। आप बस अपने मशीन पर किसी भी स्थान पर बूस्ट लाइब्रेरी को डाउनलोड और निकाल सकते हैं, जो आमतौर पर पसंद है /usr/local/

जब आप अपना कोड संकलित करते हैं, तो आप संकलक को इंगित कर सकते हैं कि पुस्तकालयों को कहां खोजना है -I। उदाहरण के लिए, g++ -I /usr/local/boost_1_59_0 xxx.hpp


10
यह केवल शीर्ष लेख पुस्तकालयों को बढ़ावा देने के लिए काम करेगा। उपरोक्त उत्तर में वर्णित पैकेज प्रबंधक का उपयोग करके उनमें से बाकी को बनाया या स्थापित करने की आवश्यकता होगी। बढ़ावा देने वाले पुस्तकालयों को अलग भवन और स्थापना की आवश्यकता होती है, वे निम्न हैं: परमाणु, क्रोनो, कंटेनर, संदर्भ, कोरटाइन, कोरटाइन 2, दिनांक_ समय, अपवाद, फाइलसिस्टम, ग्राफ, ग्राफ_परेल, आयोस्ट्रीम, लोकेल, लॉग, गणित, एमपीआई, प्रोग्राम_ऑपेशन, अजगर, यादृच्छिक , regex, क्रमांकन, संकेत, प्रणाली, परीक्षण, धागा, टाइमर, type_erasure, तरंग।
इलायस कौसोउमवेकाकिस 15

यहां तक ​​कि एलियास कुसकौमवेकाकिस के आगे के निर्देशों का पालन करके इस समाधान की मरम्मत एक बुरा विचार होगा (जब तक कि आपके पास एक अच्छा कारण नहीं है), क्योंकि पैकेज प्रबंधक बहुत आसानी से नए संस्करणों में बूस्ट को अपडेट करने की क्षमता जोड़ते हैं (उबंटू में, बस अपने सभी पैकेजों को sudo apt update; sudo apt upgradeअपग्रेड करने के लिए) रिपॉजिटरी में नवीनतम संस्करण) यदि आप बूस्ट के लिए उपयुक्त पैकेज रिपॉजिटरी पाते हैं और यदि आप चाहते हैं तो सिस्टम से बूस्ट को आसानी से हटा सकते हैं। मैनुअल दृष्टिकोण उन कार्यों को कठिन बनाता है, इसलिए आपको पैकेज मैनेजर के लाभों को छोड़ने के लिए एक अच्छे कारण की आवश्यकता होती है।
चाई टी। रेक्स

1
इसके अलावा, पैकेज प्रबंधक के बिना स्थापित करना पहले के उत्तर में बेहतर कवर किया गया है , जिसमें आवश्यक भवन निर्देश शामिल हैं।
चाई टी। रेक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.