2011-03-16 15 views
14

मैं एक .so फ़ाइल नहीं बनाई खोजने के लिए और स्थान /opt/lib में रख और अब LD_LIBRARY_PATH इस के बाद करने के लिए इस पथ जोड़ा जब मैं निम्न आदेश के साथ अपने मुख्य कार्यक्रम संकलन करने की कोशिश कर सकते हैं:/usr/bin/ld:

g++ -Wall -I/home/alwin/Development/Calculator/ main.cpp -lcalc -o calculator 

/usr/bin/ld: cannot find -lcalc 
collect2: ld returned 1 exit status 

किसी ने मुझे इस के साथ मदद कर सकते हैं:

मैं निम्नलिखित त्रुटि मिलती है। यह पहली बार है जब मैं साझा लाइब्रेरी बनाने की कोशिश कर रहा हूं। मैंने कोड ब्लॉक आईडीई

उत्तर

20

अपने कंपाइलर पैरामीटर में -L/opt/lib जोड़ें, इससे संकलक और लिंकर उस फ़ोल्डर में libcalc.so के लिए पथ बनाता है।

+0

ओह, हाँ मैंने कोशिश की है कि बहुत, फिर भी मैं एक ही त्रुटि मिली कुछ भी है :(निम्नलिखित अलविन @ अलविन-लैपटॉप देखें: ~/डेस्कटॉप/सीपीपीटेस्ट $ g ++ -Wall -I/home/alwin/development/Calculator/-L/opt/lib main.cpp -libcalc.so -o कैलकुलेटर /usr/बिन/एलडी: नहीं मिल सकता -libcalc.so संग्रह 2: एलडी 1 निकास स्थिति लौटा दी –

+2

@Jay it's -lcalc, not -libcalc.so –

2

का उपयोग करके साझा लाइब्रेरी बनाई है, आपको साझा वस्तुओं के लिए देखने के लिए ld बताने के लिए -L/opt/lib जोड़ने की आवश्यकता है।

+0

जैसा मैं पहले से ही पिछली टिप्पणी में उल्लेख किया है, मैं जोड़ने था एल/opt/lib कुछ और है कि मैं याद आ रही है :( –

2

@ एल्विन डॉस आपको -एल विकल्प पहले -l प्रदान करना चाहिए। आप शायद दूसरे दौर में किया होगा। प्रयास करें इस :)

2

यह कहना चाहिए

g++ -Wall -I/home/alwin/Development/Calculator/ -L/opt/lib main.cpp -lcalc -o calculator 

not -libcalc.so 

मैं स्वत: जनरेट करता है के साथ एक समान समस्या है जीसीसी के लिए जब आप फोन करना।

आप अपनी संकलन निर्देशिका से लाइब्रेरी निर्देशिका में एक सॉफ्ट लिंक बना सकते हैं। फिर पुस्तकालय "स्थानीय" बन जाता है।

cd /compile/directory 

ln -s /path/to/libcalc.so libcalc.so