Je peux donc écrire du code comme ceci:Existe-t-il une macro que Xcode définit automatiquement dans les versions de débogage?
#ifdef [whatever]
// do stuff that will never show up in the production version
#endif
Je peux donc écrire du code comme ceci:Existe-t-il une macro que Xcode définit automatiquement dans les versions de débogage?
#ifdef [whatever]
// do stuff that will never show up in the production version
#endif
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
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"
:
XCBuildConfiguration
section (s) pour laquelle name = Debug;
.buildSettings
ajouter DEBUG
à la liste pour GCC_PREPROCESSOR_DEFINITIONS
si elle existeGCC_PREPROCESSOR_DEFINITIONS = (DEBUG);
au buildSettings
Pour chaque utilisateur personnalisations et de les éviter d'être écrasés, voir this question.
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. –
Je crois que c'est réglé par défaut maintenant (DEBUG = 1) – vish
voir ci-dessous. utiliser #if DEBUG – vish
J'ai lu que __OPTIMIZE__ n'est plus défini dans XCode 4 tout le temps. Confirmez-vous cela? – Oliver