2012-01-27 15 views

Respuesta

15

Sí.

Mire gcc-save-temps opción.

Compila el archivo fuente y guarda el resultado del preproceso en un archivo .i. (También guarda el resultado de la fase del ensamblador en un archivo .s).

gcc -save-temps -c main.cc -o main.o 

generará main.o sino también main.i y main.s.

main.i es el resultado del preprocesamiento.

+0

¡Esto funciona perfectamente! ¡Gracias! – alesko

+0

@alesko ¡De nada! – ouah

+0

mi compilador basado en gcc solo guarda el archivo '.s' – Adrian

5

No, no con -E sí, las opciones -s, -c y -E se denominan opciones "STOP". De hecho, detienen el proceso en un punto específico, por lo que no puedes continuar.

Si desea hacer eso, debe hacerlo en dos pasos, o use -save-temps para conservar copias de los archivos temporales normalmente eliminados durante la compilación.

Desde la página de manual gcc, discutiendo cosas -E (ligeramente parafraseado):

Si sólo desea algunas de las etapas de compilación, puede utilizar -x (o sufijos de nombre de archivo) para decirle a gcc dónde empezar y una de las opciones -c, -S, o -E para decir dónde se detendrá gcc. Tenga en cuenta que algunas combinaciones (por ejemplo, -x cpp-output -E) indican a gcc que no haga nada en absoluto.

-E significa: detener después de la etapa de preprocesamiento; no ejecute el compilador propiamente La salida es en forma de código fuente preprocesado, que se envía a la salida estándar (o al archivo de salida si se especifica -o).

Si usa la opción -E, no se hace nada excepto el preprocesamiento.

y una descripción de -save-temps:

-save-temps

Almacenar los archivos intermedios habituales "temporales" de forma permanente; colóquelos en el directorio actual y nómbrelos según el archivo fuente.

Por lo tanto, compilar foo.c con -c -save-temps produciría archivos foo.i y foo.s, así como también foo.o.

Esto crea un archivo de salida foo.i preprocesado aunque el compilador ahora normalmente usa un preprocesador integrado.

+0

¡Gracias por la información detallada! – alesko

Cuestiones relacionadas