दिलचस्प पोस्ट
एंड्रॉइड स्टूडियो 2.0 में झटपट रन (बंद कैसे करें) निपटाना, इसे कब कहा जाता है? ImageIO के साथ एनिमेटेड GIF बनाना? उपयोगकर्ता नाम और पासवर्ड के साथ मोंगोडीबी को सुरक्षित कैसे करें पायथन में एन-ग्राम, टीएफ- आईडीएफ और कोसाइन समानता का सरल कार्यान्वयन विस्तारित तरीकों को केवल गैर-नेस्टेड, गैर-सामान्य स्थैतिक वर्ग में क्यों स्वीकार्य है? क्या ये JSON परिणामों में फ़ंक्शन को परिभाषित करने के लिए मान्य है? SSL में उपयोग करने के लिए जावा कीस्टोर में मौजूदा x509 प्रमाणपत्र और निजी कुंजी को कैसे आयात करें? jquery चर सिंटैक्स संदर्भ से मैं एक आदिम डेटा प्रकार कैसे प्राप्त करूं? जावा कीइलाइस्टर स्टुटर्स PHP से GET अनुरोध कैसे भेजें? जीआईटी को सूचीबद्ध करना और हटाने से कोई शाखा नहीं है (झूठ?) अरबों पंक्तियों के लिए सर्वश्रेष्ठ डेटा स्टोर पायथन में फ़ैक्टोरियल के लिए फ़ंक्शन

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 

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

वेब के समाधान से एकत्रित समाधान "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 को स्थापित करने के लिए मेरे लिए इस समस्या का समाधान किया