एक तीसरे पक्ष ने मुझे सौरिस स्टेशन से जोड़ने के लिए एक स्थिर lib (.a) प्रदान किया। मैंने सनप्रो के साथ संकलन करने की कोशिश की, और लिंक चरण में विफल रहा।क्या यह जानने का कोई तरीका है कि किस कंपाइलर ने स्थिर पुस्तकालय बनाया है?
मुझे लगता है कि यह समस्या मेरे द्वारा उपयोग किए जाने वाले कंपाइलर (जीसीसी के बजाय?) या बस इसके संस्करण से आ रही है (क्योंकि कंपाइलर द्वारा प्रदान की गई एसडीडी लिब लाइब्रेरी द्वारा अपेक्षित संस्करण से बदल सकती है AFAIK यह लिंक पर त्रुटियों का कारण बन सकती है कदम)।
मुझे कैसे पता चलेगा कि इस कंपाइलर को उत्पन्न करने के लिए किस कंपाइलर का उपयोग किया गया था? क्या ऐसा कुछ उपकरण कर रहे हैं? सनप्रो/जीसीसी या कुछ भी में कुछ विकल्प?
एक संकेत के रूप में: मैं कुछ समय पहले कि compilers अलग mangling परंपराओं का उपयोग जब वस्तु फ़ाइलों पैदा पढ़ा है (सच?)। फिर भी, "एनएम - डेमंगल" कमांड लाइन मुझे इस स्थिर lib में डीबग प्रतीकों से सभी फ़ंक्शन नामों को अच्छी तरह प्रिंट करता है। यह कैसे काम करता है ? अगर मेरी धारणा ठीक है, एनएम एक स्थिर पुस्तकालय में कौन सा सम्मेलन उपयोग में है, यह हल करने का कोई तरीका है, है ना? या क्या इसका मतलब यह है कि जीएनयू जीसीसी द्वारा लिब उत्पन्न किया गया था, क्योंकि एनएम जीएनयू बिनुटिल्स का हिस्सा है?
मैं अपने कार्य केंद्र के करीब रहा हूँ नहीं तो मैं लिंकर से & पेस्ट त्रुटि उत्पादन कॉपी नहीं कर सकते (पल के लिए नहीं लेकिन मैं उन्हें एक और संपादन में नकल कर सकता है)
आप "तीसरी पार्टी" से क्यों नहीं पूछते हैं जिसने पुस्तकालय को इसका उपयोग करने के निर्देशों के लिए आपूर्ति की है? –
मैंने उनसे पूछा। लेकिन उनकी सहायता टीम से कोई जवाब नहीं है, जो देव टीम से पूछने में अनिच्छुक है, ऐसा लगता है ...:/ –