2011-01-04 12 views
12

मैं हाल ही में पुराने बढ़ावा निर्देशिका पूरी तरह से हटाने, 1.45 स्रोतों को डाउनलोड करने और पुस्तकालयों मैं चाहता था के पुनर्निर्माण से 1.45 के लिए बढ़ावा 1.40 से उन्नत नहीं मिल सकता है। मैंने फिर bjam इंस्टॉल का उपयोग कर libs स्थापित किया। बाकी/usr/bin/ld: -lboost_system-एमटी

कुछ भी नहीं मेरी मशीन पर बदल गया है, फिर भी, अब जब मैं अपने सी ++ का निर्माण कर रहा हूँ कार्यक्रम, मैं नीचे दिए गए लिंक त्रुटि मिलती है:

/usr/bin/ld: cannot find -lboost_system-mt 

मैं खोज की है और फ़ाइल वास्तव में मौजूद नहीं है। ऐसा लगता है कि एमटी पुस्तकालय अब लाइब्रेरी का हिस्सा नहीं हैं - या क्या मुझे कुछ याद आ रही है?

मैं यह कैसे हल कर सकते हैं?

$ realpath /usr/lib/libboost_system-mt.so 

नहीं तो आप परियोजना स्थापित करने या तुम्हारा वितरण पैकेज प्रबंधन का उपयोग करने के लिए है:

+0

क्या आप गैर-बहुप्रचारित लाइब्रेरी (केवल 'boost_system') के साथ बना सकते हैं? – chrisaycock

+1

'rpm -ql boost-devel | आज़माएं grep libboost' क्या देखने के लिए। तो आप मिल गया है। –

+0

क्या आपने इसे बनाया था? –

उत्तर

1

अपने यकीन है कि /usr/lib/libboost_system-mt.so सही फ़ाइल के लिए प्रतीक-लिंक बिंदु हैं। Debian/Ubuntu के लिए यह apt-get install libboost-system1.45-dev होगा - लेकिन जब इस लेखन इस पैकेज मौजूद नहीं है।

4

इस संस्करण शायद बहु सूत्रण डिफ़ॉल्ट रूप से सक्षम नहीं होने देती।

-lboost_system-mt

संपादित करने के बजाय -lboost_system गुजर का प्रयास करें:

यह भी जांच करने के लिए अच्छा है, तो नया libs /usr/local/lib अंदर वास्तव में कर रहे हैं। आप /usr/local/lib/libboost_system.so देखने के बाद आप libs बहु सूत्रण के साथ बनाया किए जाने का अनुरोध नहीं किया जाना चाहिए। यदि फ़ाइल नहीं है, तो अपने $ पथ (वातावरण चर) लापता /usr/local/lib हो सकता है, और इसलिए संकलक जानता है, जहां उन्हें खोजने के लिए आप संकलन आदेश अद्यतन करना चाहिए:

-L/usr/local/lib -lboost_system-mt

+0

@skyeagle ने मेरा उत्तर अपडेट किया। – karlphillip

18

ठीक है, मैं हल अच्छे पुराने स्कैटरगुन दृष्टिकोण द्वारा ubuntu 12.04 (x86_64) पर यह त्रुटि

त्रुटि के साथ openvrml को स्थापित करने के बाद "lboost_filesystem-mt" नहीं मिल सकता है।

libboost सभी-देव। 54 विभिन्न पैकेज स्थापित करता है। एक में से एक चाल चलाना चाहिए, ठीक चलाता है।

+0

हा! जब तक मैंने यह पोस्ट नहीं देखा तब तक मैं उस पैकेज को स्थापित करने से परहेज कर रहा था। मेरे लिए काम किया –

1

मैं सजीव है: इस प्रकार

$ dpkg -S /usr/lib/libboost_system-mt.so 
libboost-system1.49-dev: /usr/lib/libboost_system-mt.so 

, आप कर सकते हैं:

sudo apt-get install libboost-system1.49-dev 
+1

कृपया आदेश ब्लॉक कोड में रखें। –

1

फिक्स्ड @KilgoreTrout की और @user3191035 को यह धन्यवाद, इसलिए यहाँ मेरे नोट है: मैं Ubuntu Natty 11.04 पर हूँ ; मेरी हमेशा की तरह राज्य था:

$ dpkg -S libboost_filesystem 
libboost-filesystem1.42.0: /usr/lib/libboost_filesystem.so.1.42.0 

तब मैं स्थापित:

sudo apt-get install libboost-all-dev # ton of packages 

...और उसके बाद, मैं इस मिल:

$ dpkg -S libboost_filesystem 
libboost-filesystem1.42-dev: /usr/lib/libboost_filesystem-mt.a 
libboost-filesystem1.42.0: /usr/lib/libboost_filesystem.so.1.42.0 
libboost-filesystem1.42-dev: /usr/lib/libboost_filesystem.so 
libboost-filesystem1.42-dev: /usr/lib/libboost_filesystem-mt.so 
libboost-filesystem1.42-dev: /usr/lib/libboost_filesystem.a 

तो, वह यह है कि जहां libboost_filesystem-mt.so इस ओएस में है ...

1

परिवर्तन libboost_thread-एमटी libboost_thread के लिए, पहले libboost_thread.so और libboost_thread का पता मिल .एक तो एक ही पते में इन फ़ाइलों को softlinks बनाने, तो यह

ln -s /...libboostSourceFiles.../libboost_thread.so /..RequestTOmtFiles.../libboost_thread-mt.so 

होना चाहिए यह अन्य libboost -mt फ़ाइलों के लिए भी काम करता है, क्रमबद्धता, iostreams, programoptions तरह

1

मुझे इसके साथ एक अजीब मुठभेड़ भी थी। मेरा समाधान एक बोली अजीब थी - लेकिन चूंकि यह मेरे लिए काम करता था और मैंने इसके बारे में कहीं और नहीं पढ़ा, यह यहां है। मेरे मामले में lboost_python3 गुम था। फ़ोल्डर केवल कुछ संकुल वहाँ उपलब्ध थे -

इसलिए, मैं सभी 54 संकुल @Kilgore ट्राउट की तरह

sudo apt-get install libboost-all-dev 

सुझाव दुर्भाग्य से, जब मैं/usr/lib में देखा भरी हुई। हालांकि, जब मैंने/usr/lib-folder की खोज की तो मुझे और परिणाम मिले - गायब फाइलें सभी/usr/lib/arm-linux-gnueabihf-folder में थीं।

मैंने बस सभी libboost- संबंधित फ़ाइलों को/usr/lib-folder et voila में चिपकाया - अगली बार जब मैंने lboost_python3.so के साथ कुछ भी बनाने की कोशिश की, तो सबकुछ काम करता था।

ऐसा लगता है कि कुछ पथ मिश्रित हो गए हैं या ऐसा कुछ है। आशा है कि यह आपको या किसी और की मदद करेगा।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^