Comment savoir lorsqu'un fichier d'en-tête est inclus à partir de?
Comment puis-je savoir où g++ a été en mesure de trouver un fichier include? En gros si je
#include <foo.h>
g++ va scanner le chemin de recherche, à l'aide de tout inclure des options pour ajouter ou modifier le chemin d'accès. Mais, à la fin des jours, est-il possible que je peux dire, le chemin absolu de foo.h g++ a choisi de compiler? Surtout si l'on est plus d'un foo.h dans la myriade de chemins de recherche.
Court d'un mode de réalisation de cette... est-il un moyen d'obtenir de g++ pour me dire ce que sa finale chemin de recherche est à la suite notamment de valeurs par défaut et comprennent toutes les options?
- Connexes: est-il possible de dire quel est le parent qui comprennent des fichier(s) d'un enfant le fichier a été inclus à partir de? I. e. pour afficher le inclus-à partir de graphique (Indice: gcc-E n'est pas tout à fait là... peut être traitée afin d'obtenir d'elle.)
Vous devez vous connecter pour publier un commentaire.
Cela donnera dépendances de la liste des chemins absolus d'inclure des fichiers:
Si vous ne voulez pas que le système comprend (c'est à dire
#include <something.h>
) puis utiliser:sera également imprimer le chemin d'accès complet des fichiers sont dans un format qui montre l'en-tête comprend les
clang++ -MM -H
(qui est un peu utile combinaison).clang++ -H -fsyntax-only ...
si vous souhaitez éviter de générer des fichiers de sortie (pour lesgcc
trop)./showIncludes
dans MSVC.Assurez-vous d'utiliser
Si vous utilisez
-MM
ou de l'une de ses options (-M
, etc), vous obtenez la liste des en-têtes qui sont inclus sans avoir tous les autres préprocesseur de sortie (ce qui vous semble pour obtenir la proposition deg++ -E -dI
solution).g++ -MM t.cc
montre pas d'intégration à tous, justet.o: t.cc
. Est-il besoin d'autre chose?/showIncludes
option. MSVC même tiret pour vous montrer l'imbrication des en-têtes (je ne vois que avec-M
sur GCC).-M