2010-11-12 3 views
3

Je crée une application commerciale, et nous utilisons du code GPL pour nous aider.Créer des drapeaux #warning personnalisés

Comment puis-je ajouter #warning ou #error déclarations de sorte que lorsque le code est construit pour le débogage, il met en garde contre, mais quand nous construisons pour la libération, il jette des erreurs?

que je peux faire:

#warning this code is released under a CCL licensing scheme, see Source_Code_License.rtf 
#warning this code is not LGPL-compliant 
#warning this code was copied verbatim from a GP Licensed file 

au début des fichiers, mais je peux faire mieux? Existe-t-il un meilleur moyen de baliser un fichier s'il est inclus? J'utilise Objective-C++ avec gcc ou clang.

+0

Si vous utilisez Objective C, pourquoi avez-vous ajouté un tag 'C++'? – sbi

+0

J'utilise Objective-C++, en partie en C++, en Objective-C et en partie combiné et désordonné. –

+0

@Stephen; Je m'excuse d'avoir déconné ça. (Vous devriez proprement répondre aux commentaires @address, sinon ceux auxquels vous répondez ne les verront pas sur leur onglet Réponses, je n'ai trouvé cela que par hasard.) – sbi

Répondre

2

Utilisez plutôt le message #pragma.

+2

Pouvez-vous donner un exemple? – jAckOdE

+0

Bien sûr, voici un exemple: #warning Ceci est un avertissement personnalisé – vinnybad

4
#ifdef SOME_SYMBOL 
#error "foobar" 
#else 
#warning "foobar" 
#endif 

NDEBUG a un but légèrement différent (contrôle assert) et peut être #undef et redéfinies de manière sélective (Réintégration assert.h pour effectuer le changement), de sorte qu'il ne serait probablement pas le bon symbole. Mais c'est une macro standard et pourrait être utilisée.

Notez que #error est standard, mais #warning est une extension.

Questions connexes