Ignorer tous les avertissements d’un fichier spécifique à l’aide de LLVM / Clang

Certains projets de mon projet iOS contiennent des avertissements et je veux ignorer ces avertissements. Je ne veux pas désactiver les avertissements dans tout le projet (savoir faire), juste quelques fichiers spécifiques. Y a-t-il un moyen d’ignorer complètement tous les avertissements d’un fichier spécifique?

J’utilise LLVM 3.0 et Clang sur Xcode 4.2.

    Si vous utilisez simplement clang, vous devez utiliser la syntaxe pragma pour les sources que vous gérez (en supposant qu’il soit impossible de supprimer l’avertissement en modifiant le programme de manière appropriée).

    voici la syntaxe:

    #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wmultichar" char b = 'df'; // no warning. #pragma clang diagnostic pop 

    Si ces programmes ne peuvent pas être modifiés et ne sont pas maintenus, vous devez spécifier les avertissements à désactiver pour le fichier, plutôt que tous. pour tout désactiver, vous pouvez append l’argument par fichier -w . les sources changent, et certains avertissements s’appliquent (ou non) avec des parameters de génération différents. Les messages de clang peuvent vous indiquer quel drapeau correspond à l’avertissement généré.

    Pour utiliser Xcode pour modifier les indicateurs de construction d’un fichier:

    • sélectionner la cible
    • sélectionner la phase de construction
    • localiser le fichier pour modifier les arguments dans la phase “Comstackr les sources”
    • double-cliquez sur sa cellule “Comstackr Flags” pour la modifier

    J’ai hérité d’un projet qui contenait beaucoup de code 320, et cette base de code m’a envoyé plusieurs avertissements et erreurs d’parsings statiques que je n’avais aucun intérêt à corriger puisque je supprimerai ce code du projet dans un avenir proche.

    Vous pouvez désactiver les avertissements de l’parsingur statique pour un fichier spécifique en incluant l’indicateur de compilation suivant:

     -Xanalyzer -analyzer-disable-all-checks 

    Vous pouvez combiner cela avec -w pour désactiver également les avertissements pour ce fichier. Cela m’a permis d’aller de l’avant avec de nouveaux développements sans avoir à me soucier des quelque 30 avertissements générés par cette base de code.

    En utilisant les instructions ci-dessus: Pour utiliser Xcode pour modifier les drapeaux de construction d’un fichier:

    1. sélectionner la cible
    2. sélectionner la phase de construction
    3. localiser le fichier pour modifier les arguments dans la phase “Comstackr les sources”
    4. double-cliquez sur sa cellule “Comstackr Flags” pour la modifier
    5. append “-w -Xanalyzer -analyzer-disable-all-checks” pour supprimer les avertissements et les avertissements de clang

    Avec l’aide de la réponse de Justin, c’est comme ça que tu fais

    1. Recherchez le nom de l’avertissement.

    Dans mon cas sa conversion

    entrer la description de l'image ici

    2. Ajoutez un indicateur de compilation par fichier pour les phases de construction

    Utilisez le filtre pour trouver le nom du fichier dans les sources de compilation, tapez -Wno-[error name] par exemple -Wno-conversion

    entrer la description de l'image ici

    Vous pouvez sélectionner une cible spécifique -> Paramètres de construction, rechercher Inhibit All Warnings et définir sur YES. Cela désactivera les avertissements sur cette cible. Cela peut être utile si vous utilisez du code comme JSONKit avec des cocoapods et que vous ne voulez pas voir comment le compilateur crie des avertissements 🙂