Mach-O, मैक ऑब्जेक्ट फ़ाइल प्रारूप के लिए छोटा, निष्पादन योग्य, ऑब्जेक्ट कोड, साझा पुस्तकालय, गतिशील रूप से लोड कोड और कोर डंप के लिए एक फ़ाइल प्रारूप है। यूनिक्स उपयोगकर्ताओं के लिए यह a.out
जैसा है लेकिन सुधार के साथ। यह निष्पादन योग्य फ़ाइलों के लिए मैक ओएस एक्स और आईफोन ओएस पुस्तकालयों में प्रयुक्त प्रारूप है।
जैसा कि आप जानते हैं कि आईओएस डिवाइस (आईफोन, आईपैड इत्यादि) में विभिन्न आर्किटेक्चर एआरएमवी 6 (आईफोन 2 जी + 3 जी, आईपॉड टच) और एआरएमवी 7 (आईफोन 3 जीएस, आईपॉड टच 2 जी + 3 जी) हैं लेकिन एक्सकोड में इस्तेमाल किए गए सिमुलेटर ज्यादातर चलते हैं i386 मंच। इसका मतलब है कि लाइब्रेरी क्लाइंट को सिम्युलेटर और डिवाइस के लिए अलग-अलग लक्ष्य सेट करना होगा। अलग-अलग लक्ष्य अधिकांश जानकारी डुप्लिकेट करते हैं, और केवल स्थिर पुस्तकालयों में भिन्न होते हैं। तो यदि आपको मैक-ओ लिंकर त्रुटि मिल रही है तो इसका अर्थ यह है कि एक्सकोड को उस लक्ष्य डिवाइस के लिए पुस्तकालयों में से किसी एक को जोड़ने में समस्या हो रही है; जिसके परिणामस्वरूप संकलन विफल रहता है।
अब आप अपने परिभाषाएं -
- निष्पादन - संकलित मशीन लक्षित कार्यक्रम तैयार द्विपदीय प्रारूप में चलाने के लिए।
- गतिशील लाइब्रेरी - रनटाइम के दौरान जुड़े हुए हैं - गतिशील लाइब्रेरी के संदर्भ वाले एक प्रोग्राम को लोड होने पर लाइब्रेरी के साथ लोड और लिंक होगा (या मांग पर)।
- बंडल - और बंडल पहचानकर्ता आईओएस और ओएसएक्स को आपके ऐप के किसी भी अपडेट को पहचानने दें। यह ऐप में एक अद्वितीय उपस्थिति देता है।
- स्टेटिक लाइब्रेरी - फाइलें बिल्ड समय पर जुड़ी हुई हैं। निष्पादन योग्य में कोड कॉपी किया गया है। लाइब्रेरी में कोड जिसे आपके प्रोग्राम द्वारा संदर्भित नहीं किया गया है हटा दिया गया है। केवल स्थिर पुस्तकालयों वाले एक कार्यक्रम में रनटाइम के दौरान कोई निर्भरता नहीं होती है।
- स्थानापन्न ऑब्जेक्ट फ़ाइल - एक गतिशील पुस्तकालय के लिए एक और शब्द है। जब आप गतिशील लाइब्रेरी से लिंक करते हैं, तो लाइब्रेरी को मेमोरी में लोड किया जाता है, इस पर आधारित फ़ंक्शन के पते की गणना की जाती है। वे "स्थानांतरित करने योग्य" हैं क्योंकि निहित कार्यों के पते लिंक समय पर निर्धारित नहीं हैं। अधिक जानकारी के Building Mach-O Files और Xcode Build Setting Reference के लिए (एक स्थिर पुस्तकालय में, पतों लिंक समय के दौरान गणना की जाती है।)
स्रोत
2012-10-26 07:13:51
https: // developer.apple.com/library/mac/#documentation/developertools/conceptual/MachOTopics/1-Articles/building_files।एचटीएमएल – iDev