Directives de compilation

NseaProtectorNseaProtector Membre
septembre 2008 modifié dans API AppKit #1
Je ne trouve pas la directive qui me permettrait en mode 'debug' d'envoyer des 'NSLog' sur la console et en mode 'release' de ne pas les envoyer.
Un selecteur, un if quelque chose ???
D'avance merci

Réponses

  • ChachaChacha Membre
    14:34 modifié #2
  • NseaProtectorNseaProtector Membre
    septembre 2008 modifié #3
    Oui mais si je comprends bien, c'est juste un test sur flag avec la possibilité de fair un mode verbeux via la ligne de commande, ce qui est sympathique en effet, moi je voudrais que le code ne soit pas compilé en release mais présent en débug, ma question n'était pas claire.
  • NoNo Membre
    14:34 modifié #4
    NSLog, c'est un printf vers stdout.
    Point à  la ligne.

    Donc, ce n'est pas un outil pour le debug lors que la conception d'appli.
    Donc ça n'a rien à  voir avec la compil et ses flags.
    Et ceci vaut aussi bien sous OSX que n'importe quel unix.

    Sous OSX, stdout est en standard "branché" vers le fichier system.log, lui-même consultable vers une appli nommée Console.

    Si tu as utilisé NSLog lors de tes phases de développement pour faire du traçage, alors tu t'es planté, et il ne te reste plus qu'à  les enlever de ta release finale.
  • AntilogAntilog Membre
    14:34 modifié #5
    C'est parce que Chacha est un puriste  ???

    Dans le sujet qu'il a mis en lien (1er exemple), il doit être possible de remplacer
    #ifdef DEBUG_LOG<br />
    
    par
    #ifdef DEBUG<br />
    

    et ça devrait être automatique (pas besoin  de définir DEBUG_LOG), si je ne me trompe pas
  • NseaProtectorNseaProtector Membre
    14:34 modifié #6
    je me sent bête mais bon:
    #ifdef DEBUG<br />	NSLog(@&quot;Mode DEBUG&quot;);<br />	#endif
    

    ne fonctionne pas, une idée ???
  • Paisible.frPaisible.fr Membre
    14:34 modifié #7
    Tu as pensé a mettre le :

    #define DEBUG
    
    ?
  • Philippe49Philippe49 Membre
    14:34 modifié #8
    dans 1220479100:

    NSLog, c'est un printf vers stdout.

    Plutôt stderr  ;)
  • Philippe49Philippe49 Membre
    14:34 modifié #9
    Pour ce sujet, pourquoi ne pas faire un petit script qui effacerait les NSLog dans tous les sources du projet. On l'ajouterait dans le menu des scripts, et vogue la gondole à  Venise ...
  • ChachaChacha Membre
    14:34 modifié #10
    dans 1220510939:

    Pour ce sujet, pourquoi ne pas faire un petit script qui effacerait les NSLog dans tous les sources du projet. On l'ajouterait dans le menu des scripts, et vogue la gondole à  Venise ...

    Ben parce si on les enlève, on ne peut pas les remettre :-) Bon, je plaisante, je vois ce que tu veux dire, il suffirait de mettre "//" devant

    Le plus propre et le plus simple, c'est quand même le #ifdef DEBUG
  • NseaProtectorNseaProtector Membre
    14:34 modifié #11
    Effectivement avec le #define DEBUG , ça fonctionne et pour avoir vérifier la taille de l'application en mettant le #define et sans le mettre, j'obtiens bien ce que je voulais. Même si l'idée d'un mode de debug via la ligne de commande était sympathique. Donc, Merci Chacha ainsi qu'a vous tous et caresse à  vos animaux domestiques, d'ailleurs si vous avez un chien de temps en temps faite un peu de clavier virtuel sur son dos il va adorer...
Connectez-vous ou Inscrivez-vous pour répondre.