2010-12-08 48 views
2

Le projet sur lequel je travaille récemment a fait un gros effort pour nettoyer le code en activant tous les avertissements GCC les plus stricts et en itérant jusqu'à ce qu'il soit compilé. Maintenant, par exemple, la compilation échoue si je déclare une variable et ne l'utilise pas.Puis-je dire à GCC d'échouer si j'inclue des fichiers d'en-tête inutilement?

Après ma dernière tâche de développement, je vois qu'il y a un fichier d'en-tête inclus quelque part qui n'est plus nécessaire. Y at-il un bon moyen de trouver d'autres tels fichiers d'en-tête (et de réduire ainsi les dépendances) autre que d'essayer de supprimer un fichier d'en-tête et de voir si quelque chose se brise? J'utilise GCC 4.3.2 sous Linux.

+0

"La compilation échoue si je déclare une variable et ne l'utilise pas". Quelle option du compilateur avez-vous définie pour cela? Cela semble utile, mais oh si strict ;-) – Mawg

Répondre

3

Non, il n'y a aucun moyen de faire échouer gcc si un en-tête n'est pas nécessaire. Les en-têtes inclus peuvent contenir à peu près n'importe quoi, donc on suppose que ceux qui les ont inclus avaient de bonnes raisons de le faire. Imaginez le cas suivant un peu pathologique:

int some_function(int x) { 
#include "function_body.h" 
return x; 
} 

Il est certainement pas une bonne forme, mais il serait encore compiler si vous avez supprimé l'inclure. Ainsi, un vérificateur automatique peut le déclarer "inutile", même si le comportement est vraisemblablement différent lorsque le corps de la fonction est réellement là.

+0

Vous, monsieur, avez un esprit tordu et tordu. Moi ça me plaît :-) – Mawg