2010-07-11 74 views

回答

3

如果你可以假设调试版本始终使用gcc -O0(这是正常的情况,但也有可能是奇数例外,其中有人已更改优化级别调试版本),那么你可以这样做:

#if __OPTIMIZE__ 
    // ... non-debug stuff ... 
#else 
    // ... debug stuff ... 
#endif 
+0

见下文。使用#if DEBUG – vish 2012-11-09 23:22:55

+0

我读过__OPTIMIZE__没有在XCode 4中一直设置。你确认吗? – Oliver 2013-06-29 00:27:33

5

没有按默认情况下是有用的,但对于调试版本在“预处理宏”的目标你可以设置一个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

+0

很明显。 。 。问题是,我必须在每个项目的每个目标中设置DEBUG宏,以便移植相关代码。 – 2010-07-11 18:12:04

+1

我相信这是现在默认设置(DEBUG = 1) – vish 2012-11-09 23:22:10

相关问题