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
. ).