是否有Xcode在调试版本中自动设置的宏?

时间:2010-07-11 16:21:17

标签: xcode debugging macros

所以我可以编写这样的代码:

#ifdef [whatever]
   // do stuff that will never show up in the production version
#endif

2 个答案:

答案 0 :(得分:5)

默认情况下没有任何用处,但您可以在目标构建设置的“预处理器宏”中为调试版本设置DEBUG宏,然后执行:

#ifdef DEBUG
  // do stuff
#endif

如果要自动执行此操作,请在"/Developer/Library/Xcode/Project Templates"中编辑项目模板:

  • 找到XCBuildConfiguration
  • name = Debug;部分
  • buildSettings添加DEBUGGCC_PREPROCESSOR_DEFINITIONS的列表(如果存在)
  • 否则将GCC_PREPROCESSOR_DEFINITIONS = (DEBUG);添加到buildSettings

对于每用户自定义并避免被覆盖,请参阅this question

答案 1 :(得分:3)

如果你可以假设调试版本总是使用gcc -O0(通常就是这种情况,但可能有奇怪的例外情况,有人改变了调试版本的优化级别),那么你可以这样做:

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