12

मैंने सी के लिए एक कंपाइलर लिखा है जो बाइट कोड आउटपुट करता है। इसका कारण एक एम्बेडेड प्लेटफ़ॉर्म के लिए एप्लिकेशन लिखने में सक्षम होना था जो एकाधिक प्लेटफॉर्म पर चलता है।एक लिंकर कैसे लिखें

मेरे पास कंपाइलर और असेंबलर है।

मुझे एक लिंकर लिखने की जरूरत है, और अटक गया है।

ऑब्जेक्ट प्रारूप बाइट कोड दुभाषिया के चारों ओर डिज़ाइन किया गया एक कस्टम एक है, इसलिए मैं वास्तव में किसी भी मौजूदा लिंकर्स का उपयोग नहीं कर सकता।

मेरी सबसे बड़ी बाधा जुड़ा हुआ बाइनरी आउटपुट करने के लिए ऑब्जेक्ट कोड को व्यवस्थित करने का तरीका है। इस समय गतिशील लिंकिंग आवश्यक नहीं है। मुझे पहले स्थिर काम करने की आवश्यकता है।

उत्तर

17

http://linker.iecc.com एकमात्र पुस्तक है जिसे मैं इस विषय के बारे में जानता हूं।

+0

बहुत बढ़िया किताब, ईमानदार होने के लिए। – dirkgently

4

मैं लिंकर्स और लोडर्स पुस्तक को दूसरा स्थान देता हूं। आप बताते हैं कि आपका ऑब्जेक्ट प्रारूप एक कस्टम है। यदि प्रारूप आपके नियंत्रण में है, तो आप अपने बाइटकोड के साथ एक नई मशीन आर्किटेक्चर, ला x86, SPARC, ARM, आदि के रूप में ईएलएफ प्रारूप का उपयोग करने पर विचार कर सकते हैं। जीएनयू बिनुटिल्स स्रोत आपके "आर्किटेक्चर" को शामिल करने की अनुमति देने के लिए पर्याप्त रूप से लचीले हैं। ।

12

सोना लिंकर (अब बिनुटिल्स का हिस्सा) पर मुख्य डेवलपर्स में से एक इयान लांस टेलर ने ब्लॉगर्स की एक श्रृंखला पोस्ट की है कि लिंकर्स कैसे काम करते हैं। आप इसे here पा सकते हैं।

संबंधित मुद्दे