参数-E 可以完成程序的预处理工作而不进行其他的编译工作。gcc -E -o a.cxx a.c
输入下面的命令,查看经过预处理以后的a.cxx 文件。
vim a.cxx
参数-S 可以控制gcc 在编译C 程序时只生成相应的汇编程序文件,而不继续执行后面的
编译。下面的命令,可以将本章中的C 程序编译成一个汇编程序。
gcc -S -o a.s a.c
参数-c 可以使得gcc 在编译程序时只生成目录代码而不生成可执行程序。输入下面的命
令,将本章中的程序编译成目录代码。
gcc -c -o a.o a.c
输入下面的命令,查看这个目录代码的信息。
file a.o
显示文件a.o 的结果如下所示,显示文件a.o 是一个可重定位的目标代码文件。
a.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
gcc 可以把上一步骤生成的目录代码文件生成一个可执行文件。在终端中输入下面的命令。
gcc a.o -o aa.out
这时生成一个可执行文件aa.out。输入下面的命令查看这个文件的信息。
file aa.out
显示的结果如下所示,表明这个文件是可在Linux 系统下运行的程序文件。
aa.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically
linked (uses shared libs), for GNU/Linux 2.6.9, not stripped