जब मैं कंपाइलर ध्वज -mmacosx-version-min=10.5
पास करता हूं, तो इसका क्या अर्थ है? मुझे लगता है कि इसका मतलब है कि परिणाम बाइनरी x86 है, पीपीसी नहीं, लेकिन क्या यह 32 बिट्स या 64 बिट्स है? मैं बर्फ तेंदुए पर संकलन कर रहा हूं, इसलिए डिफ़ॉल्ट आउटपुट बाइनरी 64 बिट्स है। मैं -universal
पास नहीं कर रहा हूं, यह 32 बिट -64 बिट सार्वभौमिक बाइनरी नहीं है, मुझे लगता है।मैकॉक्स-वर्जन-मिनट क्या इंगित करता है?
उत्तर
यह विकल्प हेडर में रखे गए विभिन्न उपलब्धता मैक्रोज़ द्वारा उपयोग किया जाएगा। इसका मतलब है कि आपको ओएस के न्यूनतम संस्करण की आवश्यकता हो सकती है, भले ही आपके पास हालिया एसडीके हो (यानी 10.6 एसडीके के साथ लक्ष्य 10.5)। 10.5 को लक्षित करते समय 10.6 एपीआई का उपयोग करना एक चेतावनी ट्रिगर करेगा और एपीआई को कमजोर_इम्पोर्ट विशेषता से जोड़ा जाएगा।
अधिकांश एप्पल के एपीआई हेडर प्रत्येक वर्ग, विधि, कार्य या enumerations के लिए उपलब्धता मैक्रो शामिल क्रम में उनमें से प्रत्येक के लिए घोषित करने के लिए:
- न्यूनतम OS समर्थित
- प्रतिवाद
- अनुपलब्धता
- ...
मैक्रो की तरह लग रहे:
AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED
- ...
वास्तुकला का सवाल है, यह केवल SDK के बाइनरी में उपलब्ध आर्किटेक्चर पर निर्भर करता है। उदाहरण के लिए 10.5 एसडीके के साथ, आप चार आर्किटेक्चर (इंटेल/32 बिट्स, पावरपीसी/32 बिट्स, इंटेल/64 बिट्स, पावरपीसी 64 बिट्स) को लक्षित कर सकते हैं, जबकि 10.6 एसडीके के साथ, आप केवल तीन आर्किटेक्चर (इंटेल/32 बिट्स, पावरपीसी/32 बिट्स, इंटेल/64bits)।
आप Snow Leopard उपयोग कर रहे हैं के रूप में, आप कर सकते हैं या तो लक्ष्य i386 (इंटेल/32bits), पीपीसी (PowerPC/32bits) या x86_64 (इंटेल/64bits) बहुत आसानी से इस तरह एक वास्तुकला विकल्प पास करके:
gcc -arch i386
या इस तरह (के लिए कॉन्फ़िगर आधारित परियोजनाओं):
CFLAGS="-arch i386" LDFLAGS="-arch i386" ./configure
यह मैक ओएस एक्स 10.5 के बाद दिखाई देने वाली विधियों के लिए कंपाइलर चेतावनियों को ट्रिगर करता है। वास्तुकला के साथ कुछ भी नहीं है।
मेरे परीक्षण से, यह भी महत्वपूर्ण है कि इस विकल्प का लिंक कदम (-arch) की तरह करने के लिए पारित किया जा है, इसलिए यह मैक्रोज़/प्रीप्रोकैसिंग को प्रभावित करने से अधिक करता है (जैसा कि अन्य उत्तरों से अनुमानित किया जा सकता है)।
चरण संकलित करने के लिए पारित होने पर, लिंक चरण पर पारित नहीं हुआ, मैंने पाया कि 10.6 के साथ निर्मित साझा पुस्तकालय 10.5 के तहत लोड नहीं होंगे।
-mmacosx-version-min=...
सी ++ एसटीएल कार्यान्वयन (जीएनयू या एलएलवीएम) की डिफ़ॉल्ट पसंद को भी प्रभावित करता है, और इस संबंध में, यह संकलक और लिंकर के लिए भी उतना ही महत्वपूर्ण है।
। यह मैवरिक्स पर विशेष रूप से महत्वपूर्ण है, जहां डिफ़ॉल्ट सी ++ एसटीएल lib बदल गया। –
- 1. System.Web.Configuration.MachineKeySection.MetineKeySection.GetDecodedData इंगित करता है
- 2. एक प्रतिनिधि क्या इंगित करता है?
- 3. क्या डोमेन नाम एक विशिष्ट फ़ोल्डर को इंगित करता है?
- 4. टाइपपीफ स्ट्रक्चर नोड * NODE क्या इंगित करता है?
- 5. एसबीवाइट प्रक्रिया राज्य फ्रीबीएसडी टॉप में क्या इंगित करता है?
- 6. क्या कोई सूचक एलएसबी या एमएसबी को इंगित करता है?
- 7. प्रत्येक sc-win32-status code क्या इंगित करता है?
- 8. स्प्रिंग में @ वालिड एनोटेशन क्या इंगित करता है?
- 9. winmd फ़ाइलों के लिए संस्करण 255.255.255.255 क्या इंगित करता है?
- 10. आईओएस फ़ाइल पथ पर/निजी उपसर्ग क्या इंगित करता है?
- 11. कोई पाइथन में अमान्य तर्क कैसे इंगित करता है?
- 12. जावास्क्रिप्ट "यह" विंडो ऑब्जेक्ट को फिर से इंगित करता है
- 13. पाइथन में बंद() को फ्लश() को इंगित करता है?
- 14. अपाचे क्यों/var/www पर इंगित करता है?
- 15. चींटी "JAVA_HOME जेडीके को इंगित नहीं करता है" - लेकिन यह
- 16. g_signal_connect_swapped() क्या करता है?
- 17. क्या कोई .NET अपवाद है जो एक अवैध ऑब्जेक्ट स्थिति इंगित करता है?
- 18. क्या कोई प्रकाशित शोध इंगित करता है कि एमडी 5 पर प्रीमीज हमले निकट हैं?
- 19. जानकारी संपत्ति सूची (plist फ़ाइल) में InfoDictionary संस्करण क्या इंगित करता है?
- 20. क्या "& s [0]" std :: स्ट्रिंग में संगत वर्णों को इंगित करता है?
- 21. सी ++ में फ़ंक्शन नाम से पहले एक tilde "~" क्या इंगित करता है?
- 22. फेसबुक ग्राफ एपीआई जेएसओएनपी प्रारूप,/* */पहली पंक्ति में क्या इंगित करता है?
- 23. क्रैश लॉग में मेरे ऐप नाम के बगल में "jettisoned" क्या इंगित करता है?
- 24. एक हडोप नौकरी के लिए सीपीयू टाइम क्या इंगित करता है?
- 25. क्या myVector.erase (myPtr) myPtr द्वारा इंगित ऑब्जेक्ट को हटाता है?
- 26. Foo.class यह क्या करता है?
- 27. सामान्य लिस्प - अगर पथनाम नियमित फ़ाइल या निर्देशिका को इंगित करता है तो कैसे कहना है?
- 28. ईएलएफ निष्पादन प्रविष्टि 0x80xxxxx के आभासी पते को इंगित करता है और शून्य 0x0 नहीं है?
- 29. DataGridView - AllowUserToAddRows क्या करता है?
- 30. रीडीम संरक्षित करता है क्या करता है?
मुझे इन मैक्रोज़ को सादे सी में प्राप्त करने के लिए शामिल करना था। लेकिन उपलब्ध.h को stdlib.h –
में भी शामिल किया गया है, नीचे @ क्रिस्टियन का उत्तर भी देखें। इसके अलावा मैंने पाया है कि न्यूनतम संस्करण 10 से ऊपर और ऊपर है।8 थोड़ा अलग प्रतीकों उत्पन्न करेगा ('_start' प्रतीक का लिंक बदल गया है, संभवतः नई डिफ़ॉल्ट सी ++ लाइब्रेरी के अनुरूप)। वास्तव में – Ephemera