मेरे पिछले सवाल कोई जवाब नहीं के साथ
, यहाँ कुछ अनुमान भी कुछ सुराग हो सकता है, और एक जवाब के लिए एक कदम हैं:
मैं क्या याद से, एक .ko कुछ नहीं बल्कि एक ओ फ़ाइल जिसके परिणामस्वरूप आपके स्रोत मॉड्यूल द्वारा उत्पन्न सभी .o फ़ाइलों के विलय से, और .modinfo अनुभाग के अतिरिक्त। किसी भी .ko बिल्डिंग मेकफ़ाइल के अंत में, एक एलडी कॉल है: जो मुझे याद है, एलडी को -r विकल्प के साथ बुलाया जाता है, और यही वह है जो .o फ़ाइल बनाता है जिसे मेकफ़ाइल कॉल करता है .ko। इस परिणामी फ़ाइल को किसी संग्रह या ऑब्जेक्ट लाइब्रेरी (.a फ़ाइल) के साथ भ्रमित नहीं किया जाना चाहिए, जो सिर्फ एक प्रारूप संग्रह/पैकेजिंग एकाधिक .o फाइलों के रूप में एक है: एक विलय ऑब्जेक्ट एक लिंक का परिणाम है जो अभी तक एक और उत्पन्न करता है .o मॉड्यूल: लेकिन परिणामी मॉड्यूल में, विलय किए जा सकने वाले सभी वर्ग रहे हैं, और सभी सार्वजनिक/बाहरी जोड़े जिन्हें हल किया जा सकता है उन वर्गों के अंदर हैं। तो मुझे लगता है कि आप अपने .ko अपने सभी "स्थानीय" extern परिभाषाएँ युक्त फ़ाइल के साथ अंत:
उन है कि निर्वासन हैं क्योंकि वे अपने .ko में मॉड्यूल ओ भर में कॉल करने के लिए उपयोग किया जाता है (लेकिन अब कोई आवश्यकता नहीं कर रहे हैं क्योंकि वे बाहर .ko से बुलाया जाना चाहिए नहीं कर रहे हैं), और
उन है कि .ko मॉड्यूल की जरूरत है ठीक से लोडर और कर्नेल के साथ संवाद।
पूर्व सबसे अधिक संभावना पहले से ही मर्ज के दौरान ld द्वारा हल किया गया है, लेकिन ld कोई रास्ता नहीं पता है कि आप उन्हें भी .ko बाहर से प्रतिदेय है करने का इरादा किया है।
तो आपके द्वारा देखे जाने वाले अपरिवर्तनीय प्रतीक वे हैं जो आपकी प्रत्येक .o फाइलों के लिए बाहरी हैं, लेकिन परिणामी .ko के लिए बाहरी के रूप में आवश्यक नहीं हैं। और जो आप खोज रहे हैं वह केवल उनको पट्टी करने का एक तरीका है।
क्या यह अंतिम अनुच्छेद उन प्रतीकों का सही वर्णन करता है जिन्हें आप छुटकारा पाने के लिए चाहते हैं?
यदि आप वास्तव में लौ युद्ध से बचना चाहते हैं, तो मैं सुझाव देता हूं कि लोगों को बड़े पैमाने पर सामान्यीकृत न करें :) –
अच्छा बिंदु, टिम :) अब बेहतर है? : डी – Kimvais
यदि "सामान्य सार्वजनिक" आपका कोड कभी नहीं देखेगा तो आप रिवर्स इंजीनियरिंग के बारे में चिंतित क्यों हैं? –