दिलचस्प पोस्ट
X, y निर्देशांक द्वारा पता लगाने के लिए वस्तुओं को संग्रहीत करना वर्तमान क्लिपबोर्ड सामग्री प्राप्त करें? मोंगोडीबी कई-से-कई एसोसिएशन ओ (लॉग एन) क्या मतलब है? मैं HTML स्रोत को सी # में कैसे डाउनलोड कर सकता हूं एक्लिप्स में सशर्त ब्रेकपॉइंट का उपयोग कैसे करें? JSON: फ़ॉरवर्ड स्लैश क्यों बच गए हैं? एस्पनेट एमवीसी 2 – एक मॉडल की संपत्ति को एक अलग नामांकित मान से बाँधें Java.lang.Void और शून्य के बीच क्या अंतर है? क्रॉस-ब्राउजर तरीके से व्यूपोर्ट की सटीक ऊंचाई और चौड़ाई खोजें (कोई प्रोटोटाइप / jQuery नहीं) सीएसएस के साथ निर्दिष्ट डेवलपर के आधार पर, क्या एक तत्व की चौड़ाई प्रतिशत या पिक्सेल में jQuery का उपयोग करना संभव है? कैसे दो तालिकाओं mysql में शामिल होने के लिए? मैं डीआईवी को कीबोर्ड फोकस कैसे दे सकता हूं और इसमें कीबोर्ड इवेंट हैंडलर्स को अटैच कर सकता हूं? Mongodb एकत्रीकरण फ्रेमवर्क | एकाधिक मूल्यों पर समूह? क्या एक क्लॉज के दायरे में स्तंभों का क्रम क्या है?

ld मौजूदा पुस्तकालय नहीं ढूँढ सकता

मैं डेबियन लेनी सिस्टम पर जी ++ के साथ एक आवेदन लिंक करने का प्रयास कर रहा हूं। ld शिकायत कर रहा है कि यह निर्दिष्ट पुस्तकालयों को नहीं मिल सकता है। यहाँ विशिष्ट उदाहरण ImageMagick है, लेकिन मुझे कुछ अन्य पुस्तकालयों के साथ भी इसी तरह की समस्याएं आ रही हैं I

मैं इस के साथ लिंकर बुला रहा हूँ:

g++ -w (..lots of .o files/include directories/etc..) \ -L/usr/lib -lmagic 

एलडी शिकायत:

 /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 

मैं इस समस्या का निदान कैसे कर सकता हूं, और क्या गलत हो सकता है? क्या मैं पूरी तरह से बेवकूफ कुछ कर रहा हूं?

Solutions Collecting From Web of "ld मौजूदा पुस्तकालय नहीं ढूँढ सकता"

समस्या यह है कि लिंकर को libmagic.so तलाश है लेकिन आपके पास केवल libmagic.so.1

एक त्वरित हैक libmagic.so.1 को libmagic.so

के रूप में सिर्फ grepsedawk द्वारा तैयार की है, जवाब में g++ के -l विकल्प है, ld फोन। यदि आप इस कमांड के मैन पेज को देखते हैं, तो आप या तो कर सकते हैं:

  • g++ -l:libmagic.so.1 [...]
  • या: g++ -lmagic [...] , यदि आपके लिम्ब्स पथ में libmagic.so नाम का सिमलिंक है

डेबियन कन्वेंशन उनके रनटाइम घटकों ( libmagic1: /usr/lib/libmagic.so.1 → libmagic.so.1.0.0 ) और उनके विकास घटकों ( libmagic-dev: /usr/lib/libmagic.so → … में साझा पुस्तकालयों को अलग करने के लिए है libmagic-dev: /usr/lib/libmagic.so → … )

क्योंकि लाइब्रेरी की सोनम libmagic.so.1 , वह स्ट्रिंग जो एक्जीक्यूटेबल में एम्बेडेड हो जाती है, ताकि फ़ाइल निष्पादन योग्य चलाए जाने पर लोड हो।

हालांकि, क्योंकि पुस्तकालय को लिंकर के रूप में -lmagic रूप में निर्दिष्ट किया गया है, यह libmagic.so लिए दिखता है, यही वजह है कि विकास के लिए इसकी आवश्यकता है।

डिएगो ई। पेटेंटो देखें : लिनक्स पर यह सब कैसे काम करता है, इसके विवरण के लिए लिंकर्स और नाम ।


संक्षेप में, आपको apt-get install libmagic-dev करना चाहिए apt-get install libmagic-dev यह आपको केवल libmagic.so बल्कि अन्य फ़ाइलों को भी संकलित करने के लिए libmagic.so ही नहीं देगा।

Ubuntu में, आप libtool को स्थापित कर सकते हैं जो कि पुस्तकालयों को स्वचालित रूप से हल करता है।

 $ sudo apt-get install libtool 

इसने मेरे लिए ltdl के साथ एक समस्या का समाधान किया, जिसे libltdl.so.7 रूप में स्थापित किया गया था और -lltdl में केवल -lltdl नहीं मिला था

जब तक मैं बुरी तरह से गलत नहीं हूँ libmagic या -lmagic ImageMagick के रूप में एक ही पुस्तकालय नहीं है। आप कहते हैं कि आप छवि मैजिक चाहते हैं

इमेज मैजिक कम्पाइलर के लिए सभी उपयुक्त विकल्पों की आपूर्ति करने के लिए उपयोगिता के साथ आता है।

उदाहरण के लिए:

 g++ program.cpp `Magick++-config --cppflags --cxxflags --ldflags --libs` -o "prog" 

जैसा कि लिंकर के ऊपर वर्णित है libmagic.so तलाश में है, लेकिन आपके पास केवल libmagic.so.1

इस समस्या को हल करने के लिए केवल एक अद्यतन कैश करें।

 ldconfig -v 

यह सत्यापित करने के लिए कि आप चला सकते हैं:

 $ ldconfig -p | grep libmagic 

Ubuntu repo से libgl1-mesa-dev को स्थापित करने के लिए मेरे लिए इस समस्या का समाधान किया