एक प्रोजेक्ट जो मैं काम कर रहा हूं, एक गैर मानक वितरण प्रणाली का उपयोग करता है, जो आंतरिक रूप से निर्भरता पुस्तकालयों को डाउनलोड और संकलित करता है। यह क्रॉक लॉन्च करता है, प्रत्येक लाइब्रेरी के लिए, configure
स्क्रिप्ट को संकलन प्रणाली की आंतरिक निर्देशिका उपसर्ग के रूप में दिया जाता है। फिर यह make
और make install
चलाता है, फिर यह lib/<mylib>.a
फ़ाइल के साथ स्थापित निर्देशिका खोजकर सामग्री को सत्यापित करता है। यह अंतिम कदम विफल रहता है।64-बिट OpenSuse वितरण पर लिब निर्देशिका
क्या हो रहा है यह समझने की कोशिश कर रहा है, मैंने अपने द्वारा यादृच्छिक पुस्तकालयों की एक जोड़ी संकलित की, जिसमें एक लेखक भी शामिल है। मैंने देखा कि मेरे वितरण (ओपनएसयूएसई, 64 बिट) के तहत इंस्टॉलिंग पथ /lib
के साथ पॉप्युलेट नहीं किया गया है, लेकिन इसके बजाय /lib64
के साथ।
यह स्पष्ट है कि यह वितरण की एक सेटिंग है, और मुझे पूरा यकीन है कि यह सेटिंग ऑटोोटूल की कॉन्फ़िगरेशन से संबंधित है।
क्या इस व्यवहार को बदलने का कोई तरीका है, वैकल्पिक रूप से, सिस्टम से इस जानकारी को पढ़ने के लिए (ताकि मैं ऊपर उल्लिखित क्रॉक को पैच कर सकूं)?
आपकी मदद
अद्यतन के लिए धन्यवाद: मैं configure
में --libdir
ध्वज के बारे में सीखा है, इसलिए मुझे लगता है कि मैं अपने इस समस्या का समाधान कर सकते हैं। फिर भी मैं जानना चाहता हूं कि वितरण से पूछताछ से किसी भी तरह से इस विवरण को जानने का कोई तरीका है (उदा। कुछ कॉन्फ़िगरेशन फ़ाइल पढ़ें)।
सिस्टम पर ऑटोकॉन्फ़ के साथ इसका कोई लेना-देना नहीं है, क्योंकि आप ऑटोकॉन्फ़ नहीं चला रहे हैं। –
@ विलियम पर्ससेल: मैं नहीं हूं, लेकिन मैं 'कॉन्फ़िगरेशन' स्क्रिप्ट चला रहा हूं। मेरा अनुमान है कि 'कॉन्फ़िगरेशन' आधारित संकलन प्रणाली ऑपरेटिंग सिस्टम से कुछ कॉन्फ़िगरेशन पढ़ सकती है (उदाहरण के लिए '/ etc/'में कुछ फ़ाइल) यह निर्धारित करने के लिए कि ओएस को पुस्तकालयों को कहां से उम्मीद की जा सकती है। – Dacav
यदि कॉन्फ़िगर स्क्रिप्ट/etc/में देख रही है, तो यह पैकेज में एक बग है। मैंने आपके द्वारा वर्णित व्यवहार को कभी नहीं देखा है। ऐसा हो सकता है कि आप ऑटोकॉन्फ़ के पैच किए गए संस्करण के साथ कॉन्फ़िगर स्क्रिप्ट उत्पन्न कर रहे हैं। क्या कॉन्फ़िगर स्क्रिप्ट में "libdir = '$ {exec_prefix}/lib'" पंक्ति होती है? –