"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्टेटिक सी लाइब्रेरीज़ को C++ कोड से लिंक करते समय \"अनिर्धारित संदर्भ\" त्रुटियों का समाधान कैसे करें?

स्टेटिक सी लाइब्रेरीज़ को C++ कोड से लिंक करते समय \"अनिर्धारित संदर्भ\" त्रुटियों का समाधान कैसे करें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:228

How to Resolve \

स्टेटिक सी लाइब्रेरी को सी कोड से जोड़ने में त्रुटियों का अपरिभाषित संदर्भ

जब आप किसी स्टैटिक सी लाइब्रेरी को सी कोड से जोड़ने का प्रयास कर रहे हों, तो आप ऐसा कर सकते हैं। लिंक क्रम को संशोधित करने के बावजूद, "अपरिभाषित संदर्भ" त्रुटियों का सामना करना पड़ा। यह समस्या C और C संकलन द्वारा बनाए गए अलग-अलग प्रतीक नामों से उत्पन्न होती है जिन्हें 'नेम मैंगलिंग' के रूप में जाना जाता है।

C में, लिंकर त्रुटि संदेशों में विघटित प्रतीक नामों को प्रदर्शित करता है, जो भ्रमित करने वाला हो सकता है। ऑब्जेक्ट फ़ाइल (*.o) को "nm -u" के साथ निरीक्षण करने से पता चलता है कि संदर्भित प्रतीक नाम लाइब्रेरी में मौजूद नामों से मेल नहीं खाते हैं।

इस समस्या को हल करने के लिए, बाहरी के रूप में लिंक किए गए फ़ंक्शन का उपयोग करके संकलित किया गया था सी कंपाइलर की फ़ंक्शन घोषणाएं "बाहरी "सी" {}" ब्लॉक में संलग्न होनी चाहिए। यह ब्लॉक के भीतर हर चीज़ के लिए C नाम में गड़बड़ी को दबा देता है।

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

extern "C" {
    #include 
    #include 
}

वैकल्पिक रूप से, आप फ़ंक्शन घोषणाओं को हेडर फ़ाइलों में निम्नानुसार लपेट सकते हैं:

#if defined (__cplusplus)
extern "C" {
#endif

/*
 * Put plain C function declarations here ...
 */

#if defined (__cplusplus)
}
#endif
विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729663094 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3