Los parámetros -S -save-temps
funcionan bien, siempre que no los use en archivos con el mismo nombre.gcc con parámetros "-S -save-temps" coloca archivos intermedios en el directorio actual
Considere la siguiente situación: Tengo un proyecto con un directorio principal y un subdirectorio con el nombre subDir
y en ambos directorios hay archivos colocados con el nombre file.c
. Si ahora llamo al gcc -S -save-temps file.cpp subDir/file.c
, solo se generará un archivo intermedio con el nombre file.i
.
Ese es el comportamiento esperado, como me dice el archivo man de gcc
, que los archivos intermedios siempre se colocarán en la ruta actual, cuando se usa -save-temps
.
Mi problema es que estoy trabajando en proyectos que no sé de antemano. Podría ser que alguien haya construido el ejemplo mencionado anteriormente en sus Makefiles. En ese caso, me quedaría estancado, porque necesito ambos archivos intermedios.
Algunas palabras para el sistema que estoy construyendo (para una mejor comprensión): Mi herramienta usa make --just-print
para recoger las llamadas, un archivo make de un proyecto invoca. Escaneo estas llamadas para llamadas al compilador y agrego las opciones -save-temps
y -S
. El objetivo es obtener cada archivo preprocesado, que se utiliza en el proceso de compilación del proyecto.
¿Tiene alguna idea de cómo puedo obtener cada archivo preprocesado, incluso si el ejemplo mencionado anteriormente debería aparecer?
Ha habido un error en mi puesto. Ambos archivos en mi ejemplo tienen la misma extensión. – Customizer
Sí, sé el parámetro -E. Pero el problema es que hay más de una línea del patrón n. ° 1 "". Bueno, hasta hace un minuto, pensé, esto sería un problema. Pero creo que cada línea con este patrón simplemente declara una ruta o incluye un archivo de encabezado con la terminación .h. Entonces realmente debería ser posible analizar esas cosas. Pero todavía no estoy seguro, si puedo contar con eso. –
Customizer
Muchas gracias. Con la ayuda de http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html#Preprocessor-Output debería poder analizar los archivos que obtengo usando ''E'. – Customizer