2009-10-07 4 views
22

ओएस एक्स विशिष्ट कोड के लिए मैं क्या सी प्रीप्रोसेसर सशर्त उपयोग करना चाहिए? यदि मैं लिनक्स के लिए संकलित कर रहा हूं तो मुझे एक विशिष्ट लाइब्रेरी को शामिल करने की आवश्यकता है यदि मैं ओएस एक्स या एक अलग शीर्षलेख के लिए संकलित कर रहा हूं।ओएस एक्स विशिष्ट कोड के लिए मैं क्या सी प्रीप्रोसेसर सशर्त उपयोग करना चाहिए?

मुझे पता है कि __APPLE__ है लेकिन मुझे नहीं पता कि यह ओएस एक्स 10.x के लिए वर्तमान सशर्त है या नहीं।

उत्तर

40

This list of operating system macros कहते की उपस्थिति दोनों__APPLE__ और __MACH__ से संकेत मिलता है OSX।

the source for fdisk के भाग 18 की लाइन पर भी पुष्टि की गई।

+2

सुनिश्चित नहीं है कि यह क्यों मतदान किया गया। यह सही लगता है। –

2

अगर मैं सही ढंग से याद है, यह __APPLE__ है :)

+1

मेरा मानना ​​है कि यह मैक और आईओएस दोनों के लिए है। –

7

__APPLE__ आपको बताएगा कि आप एक ऐप्पल मंच पर संकलन कर रहे हैं। जब तक आपको ओएस एक्स से पहले मैकोज़ संस्करणों का समर्थन करने की आवश्यकता न हो, तो यह पर्याप्त होना चाहिए। वैकल्पिक रूप से, आप __APPLE__ और __MACH__ इस्तेमाल कर सकते हैं सुनिश्चित करें कि आप ओएस एक्स पर संकलित कर रहे हैं बनाने के लिए

0

इस कोड उदाहरण आप मदद कर सकते हैं -

if defined(__APPLE__) 
#include "TargetConditionals.h" 
    if (!defined(TARGET_OS_IPHONE) && !defined(TARGET_IPHONE_SIMULATOR)) 
{ 
    //write your OSX specific code here 
} 
0

पुरानी शैली कच्चे:

#ifdef WIN32 
// windows. 
#elif __APPLE__ 
// osx and ios. 
#endif 
0

This page शामिल सभी ओएस पूर्वनिर्धारित मैक्रोज़ की एक सूची।

मैक OSX दोनों __APPLE__ & & __MACH__ जरूरत के लिए परिभाषित किया जाना है।

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