2011-11-30 18 views
5

मैं गूगल के RE2 पुस्तकालयre2 पुस्तकालय लोड हो रहा है

int main() 
{ 
    int r = RE2::FullMatch("hello", "h.*o"); 
    cout <<" match = " << r << endl; 
    return 0; 
} 

मैं निम्न आदेश का उपयोग कर compling हूँ परीक्षण करने के लिए निम्नलिखित कोड का उपयोग कर रहा हूँ -

g++ -lre2 -o retest retest.cc 

यह ठीक संकलन है, लेकिन जब मैं कोशिश कर रहा हूँ निम्नलिखित त्रुटि को फेंकने के साथ //retest को चलाएं -

error while loading shared libraries: libre2.so.0: cannot open shared object file: No such file or directory 

मैंने चेक किया है और libre2.so.0 लाइब्रेरी करता है उपयोगकर्ता/स्थानीय/lib निर्देशिका और re2/obj/so निर्देशिका पर मौजूद है। तो यह त्रुटि क्यों आ रही है मैं कुछ विस्तार जोड़ने के लिए भूल रहा हूँ?

+1

क्या यह एक समाधान हो सकता है? http://edn.embarcadero.com/article/32861। Libre.so.0 स्थित है जहां lib निर्देशिका को इंगित करने के लिए बस अपना LD_LIBRARY_PATH सेट करें। – Lucian

+1

libre2.so.0 फ़ाइल कहां स्थित है? क्या यह आपके 'LD_LIBRARY_PATH' और/या /etc/ld.so.conf से पथ है? क्या आपने इसे स्थापित करने के बाद ldconfig चलाया? – PlasmaHH

+1

साझा पुस्तकालयों को लोड करते समय [लिनक्स त्रुटि का संभावित डुप्लिकेट: साझा ऑब्जेक्ट फ़ाइल नहीं खोल सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं] (http://stackoverflow.com/questions/480764/linux-error-while-loading-shared- पुस्तकालय- कैनोट -open-shared-object-file-no-s) –

उत्तर

4

sudo ldconfig पर चल रहे प्रश्न में कुछ जानकारी याद करते हैं, तो मैं इसे चारों ओर रखूंगा।

1

क्लासिक ख़तरा:

g++ -o retest retest.cc -lre2 

पुस्तकालयों ईमानदार मैं लिंक त्रुटियों के अभाव पर हैरान हूँ होने के लिए पिछले

संपादित होना चाहिए। यदि आप

+2

शायद यह सुनिश्चित करने का समय है कि लाइब्रेरी एलडी के पथ में है और ldconfig को पुन: चालू करें। –

+0

@ माइकल क्रेलिन-हैकर: संभवतः +1। हालांकि अधिकांश सिस्टम 'usr/local/lib' ldconfig में है और libre2 को – sehe

+0

पैक किया गया है, मुझे लगता है कि हाँ, स्किपिंग पथ जांच सबसे अधिक सुरक्षित है और यदि पुस्तकालय स्रोत' ldconfig' से स्थापित किया गया था, तो मदद की जा सकती है। –

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