मुझे कुछ कंपाइलर/लिंकर त्रुटियां मिलीं और मुझे नहीं पता कि आगे बढ़ने के लिए सही तरीका क्या है। मैं इस स्थिति में हूं:लिंकर त्रुटि इनलाइन फ़ंक्शन
- a.h: इस फ़ाइल में "इनलाइन" के रूप में घोषित एक फ़ंक्शन को परिभाषित किया गया है, उदाहरण के लिए: इनलाइन शून्य foo1();
- b.h: इस फ़ाइल में "इनलाइन" के रूप में घोषित एक फ़ंक्शन को परिभाषित किया गया है जो foo1(): इनलाइन शून्य foo2() को कॉल करता है;
- main.c: foo1 और foo2() दोनों के कुछ फ़ंक्शन कॉल हैं।
अब, अगर मैं आह में foo1 और foo2 घोषित करने और bh मैं निम्नलिखित त्रुटि मिली निर्वासन इनलाइन शून्य के रूप में:
prj/src/b.o: In function
foo1': (.text+0x0): multiple definition of
foo1' prj/src/main.o:(.text+0x0): first defined here make: * [kernel] Error 1
क्या जिस तरह संकलित करने के लिए और में बिना त्रुटियों/चेतावनी लिंक अनुमति देते हैं स्थिति मैंने वर्णित किया?
'स्थिर इनलाइन' का उपयोग करने के बारे में क्या? – FatalError
मुझे लगता है कि यह काम नहीं करेगा। स्थिर विशेषता का अर्थ यह है कि यह केवल अनुवाद इकाई में दिखाई देता है जहां घोषित/परिभाषित किया गया है और मैं अन्य मॉड्यूल में उन कार्यों का उपयोग करना चाहता हूं ... – r0x
नहीं, प्रतीक्षा करें। स्थिर के साथ यह काम करता है ... लेकिन क्यों? @ 75inchpianist – r0x