2011-08-06 87 views
3

現在,我正在爲Mac OS和iOS開發應用程序。我希望能夠做到像塊想要列出適用於iOS(和Mac)的Xcode宏和預處理器符號

#ifdef __IOS__ 
(stuff) 
#endif 

而且對像,特定MAC/IOS版本和硬件配置。我發現,

clang -dM -E - < /dev/null 

clang -x c++ -arch armv7 -dM -E - < /dev/null 

輸出一些有用的信息,但它顯然不是全部,我們有工作的符號。出於某種原因,通過xcode中的build命令或通過命令行中的xcodebuild,在項目設置中將-dM設置爲編譯器標誌不起作用(因爲沒有額外的輸出)。

任何提示?

感謝, 喬恩

回答

6

您可能會發現Availability.hAvailabilityInternal.h有益的,它定義了各種編譯器爲各種硬件配置,包括iOS和Mac OS版本號以及如何使用它們設置預處理器符號:

http://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/Availability.h http://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/AvailabilityInternal.h

您可以使用Xcode的鍵盤快捷鍵Cmd的 + Shift + O查找這些的最新/ beta版本的iOS版本。

另一個有用的定義是TARGET_IPHONE_SIMULATOR來檢測是否編譯爲iOS模擬器。

+0

謝謝!如果我有代表,我會提高你的答案。如果問題消失了,我會檢查你的回答,但我最好喜歡一個完整的符號列表。 – dongle