मैं इस डेबियन लनी सिस्टम पर g ++ के साथ किसी एप्लिकेशन को लिंक करने का प्रयास कर रहा हूं। एलडी शिकायत कर रहा है कि यह निर्दिष्ट पुस्तकालयों को नहीं ढूंढ सकता है। यहां विशिष्ट उदाहरण ImageMagick है, लेकिन मुझे कुछ अन्य पुस्तकालयों के साथ भी इसी तरह की समस्याएं आ रही हैं।ld मौजूदा लाइब्रेरी नहीं ढूंढ सकता
मैं साथ लिंकर बोल रहा हूँ:
g++ -w (..lots of .o files/include directories/etc..) \
-L/usr/lib -lmagic
ld शिकायत:
/usr/bin/ld: cannot find -lmagic
हालांकि, libmagic मौजूद है:
$ locate libmagic.so
/usr/lib/libmagic.so.1
/usr/lib/libmagic.so.1.0.0
$ ls -all /usr/lib/libmagic.so.1*
lrwxrwxrwx 1 root root 17 2008-12-01 03:52 /usr/lib/libmagic.so.1 -> libmagic.so.1.0.0
-rwxrwxrwx 1 root root 84664 2008-09-09 00:05 /usr/lib/libmagic.so.1.0.0
$ ldd /usr/lib/libmagic.so.1.0.0
linux-gate.so.1 => (0xb7f85000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7f51000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7df6000)
/lib/ld-linux.so.2 (0xb7f86000)
$ sudo ldconfig -v | grep "libmagic"
libmagic.so.1 -> libmagic.so.1.0.0
मैं कैसे इस समस्या को आगे का निदान करते हैं, और क्या गलत हो सकता है? क्या मैं कुछ पूरी तरह बेवकूफ कर रहा हूँ?
कि काम करता है, मैं एक तरह से उलझन में है कि यह डिफ़ॉल्ट रूप से एक पूरी तरह से बेकार तरह से फ़ाइल को नाम होगा हूँ - अगर आप किसी भी जानकारी प्रदान कर सकते यह करना होगा क्यों डिफ़ॉल्ट रूप से यह? – maxpenguin
सबसे अधिक संभावना है कि यह स्थापित स्क्रिप्ट – grepsedawk
की गलत कॉन्फ़िगरेशन है foo.so.1 foo.so.1.0.0 को भी एक सिम्लिंक है। इस तरह, आपके सिस्टम में लाइब्रेरी के कई संस्करण हो सकते हैं, और यदि किसी एप्लिकेशन को किसी विशिष्ट व्यक्ति की आवश्यकता होती है, तो यह उससे लिंक हो सकता है, जबकि सामान्य रूप से, नवीनतम सिमलिंक द्वारा चुना जाता है। मुझे नहीं पता कि यह सिम्लिंक क्यों गुम हो गया था। – Svante