所以,我可以寫這樣的代碼:是否有Xcode在調試版本中自動設置的宏?
#ifdef [whatever]
// do stuff that will never show up in the production version
#endif
所以,我可以寫這樣的代碼:是否有Xcode在調試版本中自動設置的宏?
#ifdef [whatever]
// do stuff that will never show up in the production version
#endif
如果你可以假設調試版本始終使用gcc -O0
(這是正常的情況,但也有可能是奇數例外,其中有人已更改優化級別調試版本),那麼你可以這樣做:
#if __OPTIMIZE__
// ... non-debug stuff ...
#else
// ... debug stuff ...
#endif
沒有按默認情況下是有用的,但對於調試版本在「預處理宏」的目標你可以設置一個DEBUG
宏建設置,然後執行:
#ifdef DEBUG
// do stuff
#endif
如果你想自動執行,編輯項目模板"/Developer/Library/Xcode/Project Templates"
:
name = Debug;
的XCBuildConfiguration
部分。buildSettings
添加DEBUG
到列表GCC_PREPROCESSOR_DEFINITIONS
如果存在GCC_PREPROCESSOR_DEFINITIONS = (DEBUG);
到buildSettings
對於每個用戶自定義,並避免它們被覆蓋,見this question。
很明顯。 。 。問題是,我必須在每個項目的每個目標中設置DEBUG宏,以便移植相關代碼。 – 2010-07-11 18:12:04
我相信這是現在默認設置(DEBUG = 1) – vish 2012-11-09 23:22:10
見下文。使用#if DEBUG – vish 2012-11-09 23:22:55
我讀過__OPTIMIZE__沒有在XCode 4中一直設置。你確認嗎? – Oliver 2013-06-29 00:27:33