67 votes

Inclure les fichiers d'en-tête à partir de la ligne de commande (gcc)?

Est-il possible de spécifier d'autres fichiers d'en-tête à inclure à partir de la ligne de commande (à l'aide de GCC 4 / C++)?

Ou est-il de toute autre manière, tous les fichiers peuvent être inclus sauf avec #include?

Contexte: je suis en train de compiler une grande base de code sur mon propre PC. Le code est généralement compilé dans un cluster, avec un complexe système de build (SoftRelTools quelqu'un?), qui est étroitement lié au système d'exploitation, tel qu'il est pratiquement impossible de l'installer à un autre endroit, des centaines de fichiers makefiles et des scripts shell, et codé en dur des chemins à des lecteurs réseau). Toutefois, le code est assez simple, et se compile bien, MAIS il manque beaucoup de comprend (surtout de la "include <vector>" et "include <math.h>"). Je devine que le système prend soin de cette habitude, mais je dois passer par le code et ajouter le comprend manuellement, que je préfère éviter.

77voto

foraidt Points 2460

J'ai trouvé l'option inclure. N'est-ce cela que vous voulez?

-inclure le fichier

Processus fichiers comme si "#include "fichier" est apparue comme la première ligne de la principale source de fichier. Cependant, l' premier répertoire recherché pour le fichier est le préprocesseur du répertoire de travail au lieu du répertoire contenant le fichier source principal. Si non trouvé là, il est recherché dans les reste de la "#include "..."" chaîne de recherche comme d'habitude.

Si plusieurs inclure des options sont données, les fichiers sont inclus dans le afin qu'ils apparaissent sur la ligne de commande.

26voto

YuppieNetworking Points 3417

Du manuel de gcc:

 -include file
   Process file as if "#include "file"" appeared as the first line of the primary source
   file.  However, the first directory searched for file is the preprocessor's working
   directory instead of the directory containing the main source file.  If not found 
   there, it is searched for in the remainder of the "#include "..."" search chain as
   normal.

   If multiple -include options are given, the files are included in the order they 
   appear on the command line.
 

9voto

tibur Points 7082

Selon la documentation de gcc, le commutateur de ligne de commande "-include file" ferait l'affaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X