2010-07-11 6 views

Répondre

3

Si vous pouvez supposer que debug toujours utiliser gcc -O0 (ce qui est normalement le cas, mais il peut y avoir des exceptions bizarres où une personne a changé le niveau d'optimisation pour construit débogage), vous pouvez le faire:

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

voir ci-dessous. utiliser #if DEBUG – vish

+0

J'ai lu que __OPTIMIZE__ n'est plus défini dans XCode 4 tout le temps. Confirmez-vous cela? – Oliver

5

Rien d'utile par défaut, mais vous pouvez définir une DEBUG macro pour debug dans le « préprocesseur Macros » des cibles paramètres de construction puis faire:

#ifdef DEBUG 
    // do stuff 
#endif 

Si vous souhaitez automatiser que, modifiez les modèles de projet dans "/Developer/Library/Xcode/Project Templates":

  • Trouver le/les XCBuildConfiguration section (s) pour laquelle name = Debug;.
  • Dans le buildSettings ajouter DEBUG à la liste pour GCC_PREPROCESSOR_DEFINITIONS si elle existe
  • Sinon ajouter GCC_PREPROCESSOR_DEFINITIONS = (DEBUG); au buildSettings

Pour chaque utilisateur personnalisations et de les éviter d'être écrasés, voir this question.

+0

Fonctionne évidemment. . . le problème est alors que je dois définir la macro DEBUG dans chaque cible de chaque projet auquel je porte le code en question. –

+1

Je crois que c'est réglé par défaut maintenant (DEBUG = 1) – vish