Comment savoir d’où provient un fichier d’en-tête?

Comment savoir où g ++ a pu trouver un fichier include? Fondamentalement si je

#include  

g ++ parsingra le chemin de recherche, en utilisant les options include pour append ou modifier le chemin. Mais, au bout du compte, y a-t-il un moyen de déterminer le chemin absolu de foo.h que g ++ a choisi de comstackr? Particulièrement pertinent s’il y a plus d’un foo.h dans la myriade de chemins de recherche.

En d’autres termes, y a-t-il un moyen d’obtenir que g ++ m’indique son chemin de recherche final après avoir inclus les parameters par défaut et que tous incluent des options?

Cela donnera des dépendances à make qui listent les chemins absolus des fichiers include:

 gcc -M showtime.c 

Si vous ne voulez pas que le système comprenne (par exemple, #include ), utilisez:

 gcc -MM showtime.c 
 g++ -H ... 

imprimera également le chemin complet des fichiers d’inclusion dans un format qui montre quel en-tête comprend lequel

Sure utilisation

 g++ -E -dI ... (whatever the original command arguments were) 

Si vous utilisez -MM ou l’une des options associées ( -M , etc.), vous obtenez uniquement la liste des en-têtes inclus sans avoir toutes les autres sorties du préprocesseur (que vous semblez obtenir avec la solution suggérée g++ -E -dI . ).