के बीच ऑब्जेक्ट फ़ाइल संगतता पहले मैं रिकॉर्ड के लिए यह कहना चाहता हूं कि यह प्रश्न स्कूल/होमवर्क से संबंधित है।सी कंप्यूटर
मान लें कि कंप्यूटर सीपी 1 और सीपी 2 दोनों एक ही ऑपरेटिंग सिस्टम और मशीन भाषा साझा करते हैं। यदि सीपी 1 पर सी सी प्रोग्राम संकलित किया गया है, तो उसे सीपी 2 में स्थानांतरित करने के लिए, स्रोत कोड को स्थानांतरित करना और सीपी 2 पर पुन: संकलित करना आवश्यक है, या बस ऑब्जेक्ट फ़ाइलों को स्थानांतरित करना आवश्यक है।
मेरा आंत जवाब यह है कि ऑब्जेक्ट फ़ाइलों को पर्याप्त होना चाहिए। सी कोड को कंपाइलर द्वारा असेंबली में अनुवादित किया जाता है और असेंबलर द्वारा मशीन कोड में इकट्ठा किया जाता है। चूंकि आर्किटेक्चर एक ही मशीन कोड और ऑपरेटिंग सिस्टम साझा करता है, मुझे कोई समस्या नहीं दिखाई देती है।
लेकिन जितना अधिक मैं इसके बारे में सोचता हूं, उतना ही भ्रमित मैं प्राप्त करना शुरू कर रहा हूं।
मेरे प्रश्न हैं:
क) अपनी फ़ाइलों और नहीं निष्पादनयोग्य आपत्ति की बात के बाद से, मैं वहाँ संभालने कर रहा हूँ कोई जोड़ने की गई है। क्या सीपी 2 पर लिंक करते समय सतह की कोई समस्या होगी?
बी) क्या इससे कोई फर्क नहीं पड़ता कि कोड सीपी 1 पर सी 11 मानक का उपयोग करता है लेकिन सीपी 2 पर एकमात्र कंपाइलर सी 99 था? मुझे लगता है कि कोड संकलित/इकट्ठा होने के बाद यह अप्रासंगिक है।
सी) प्रश्न साझा/गतिशील लिंक्ड पुस्तकालयों को निर्दिष्ट नहीं करता है। तो यह केवल वास्तव में काम करेगा यदि प्रोग्राम की .dll/.so/.dylib फ़ाइलों पर कोई निर्भरता नहीं थी, अन्यथा इन्हें सीपी 2 पर भी आवश्यक होगा।
मुझे लगता है कि बहुत सारे गॉथस हैं, और इस बात पर विचार करते हुए कि सवाल कितना अस्पष्ट है, अब मुझे लगता है कि यह बस पुनः संयोजित करना सुरक्षित होगा।
हल्प!
distcc, जो कंप्यूटर के बीच ऑब्जेक्ट फ़ाइलों की प्रतिलिपि बनाता है, सी भाषा के लिए भी सभी नोड्स पर कंपाइलर के समान संस्करण का उपयोग करने की सिफारिश करता है। – aschepler