Les paramètres -S -save-temps
fonctionnent très bien, tant que je ne les utilise pas sur des fichiers portant le même nom. Pensez à la situation suivante: J'ai un projet avec un répertoire principal et un sous-répertoire avec le nom subDir
et dans les deux répertoires sont des fichiers placés sous le nom file.c
. Si j'appelle maintenant gcc -S -save-temps file.cpp subDir/file.c
, un seul fichier intermédiaire portant le nom file.i
sera généré.gcc avec les paramètres "-S -save-temps" met les fichiers intermédiaires dans le répertoire courant
C'est le comportement attendu, comme le fichier man de gcc
me dit, que les fichiers intermédiaires seront toujours placés dans le chemin actuel, lors de l'utilisation -save-temps
.
Mon problème est que je travaille sur des projets que je ne connais pas à l'avance. Il pourrait très bien être, que quelqu'un a construit l'exemple mentionné ci-dessus dans ses Makefiles. Dans ce cas, je serais coincé, car j'ai besoin des deux fichiers intermédiaires.
Quelques mots au système que je construis (pour mieux comprendre): Mon outil utilise make --just-print
pour collecter les appels, un fichier make d'un projet invoque. Je scanne ces appels pour les appels du compilateur et ajoute les options -save-temps
et -S
. Le but est d'obtenir chaque fichier prétraité, qui est utilisé dans le processus de compilation du projet.
Avez-vous des idées, comment puis-je obtenir chaque fichier prétraité, même si l'exemple mentionné ci-dessus devrait apparaître?
Désolé, il y avait une faute de frappe dans mon post. Les deux fichiers dans mon exemple ont la même extension. – Customizer
Oui, je connais le paramètre -E. Mais le problème est, qu'il y a plus d'une ligne du modèle # 1 "". Eh bien, jusqu'à il y a une minute, j'ai pensé, ce serait un problème. Mais je pense que toutes les autres lignes avec ce modèle déclarent simplement un chemin ou incluent un fichier d'en-tête avec la fin .h. Donc, il devrait vraiment être possible d'analyser ce genre de choses. Mais je ne suis pas encore sûr, si je peux compter sur ça. –
Customizer
Merci beaucoup. Avec l'aide de http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html#Preprocessor-Output je devrais pouvoir analyser les fichiers que j'obtiens en utilisant '-E'. – Customizer