GCC编译器-预编译结果文件
(2014-05-30 22:14:40)GCC编译器---查看源文件预处理结果:
gcc -E preprocess_only.c >stdout.txt
-E选项将预处理的结果写入stdout,可以重定向到另一个文件,也可以使用命令:gcc -E preprocess_only.c -o output.txt得到和上面
gcc -E preprocess_only.c >stdout.txt一样的结果。
-o选项用于指定出文件名:
对于-c, -o指定的是目标文件名;
对于-S ,-o指定的是汇编文件名;
对于-E, -o自然也可以指定预处理文件名
-save-temps 选项保留中间文件:如预处理后的结果文件、汇编代码文件与目标文件。其中的预处理结果文件以.i做后缀,汇编代码文件以.s做后缀,比如:
gcc -save-temps -S preprocess_only.c -o assemblyFile, 得到preprocess_only.i文件,内容是预处理结果,是中间文件。而assemblyFile文件,内容是汇编代码, 是最终结果文件。
from http://www.cppblog.com/ownwaterloo/archive/2009/04/16/get_result_of_preprocessing.h
CFLAGS = -c -save-temps -S
%.i : %.c
@echo [AS] $@
@${CC} ${CFLAGS} -E -o $@ $<