Ubuntu系统下gcc编译过程

1,预处理阶段(预编译)

gcc -E test.c -o test.i

(其中-o file输出到指定文件file)

2,编译阶段

gcc -S test.i -o test.s

(test.s就是生成的汇编语言文件)

3,汇编

gcc -c test.s -o test.o

(test.o为目标程序)

4,连接

gcc test.o -o test

(可执行文件test)

Ubuntu系统下gcc编译过程

小结:也可以直接完成,编译连接过程

gcc test.c -o test

5,关于优化
time命令可以查看运行时间
其中,real为程序总的执行时间,包括进程的调度,切换等时间
user:用那个花执行时间
sys:内核执行时间
Ubuntu系统下gcc编译过程
优化参数选项:
-O0不进行优化
-O1基本优化,使执行程序变得更快
-O2在O1基础之上进一步优化,如处理器指令调度
-O3开启所有优化
-Os生成最小可执行文件,主要用于嵌入式领域。

6,关于编译告警和出错选项。
-ansi 支持符合ANSI标准的C程序
-pedantic 允许发出ANSI C标准所列的全部警告信息
-w 关闭所有告警
-Wall 允许发出gcc提供的所有有用的告警信息
-werror 把所有的告警信息转化成错误信息,并在告警发生时终止编译