gcc -E helloworld.c (预处理)
预处理主要是对#include #define #if等做处理
对include进行展开,
对define进行替换
对于if 不成立的语句去掉
生成.i文件
gcc -S helloworld.c(生成汇编程序)
生成.s文件
gcc -C helloworld.c (编译应用模块)
主要是对源文件(.c)进行语法检查和编译生成.o文件
.o文件并不是可执行文件,要变为可执行文件可能还依赖其他的.o文件或者是库文件或者是标准库文件
生成.o 文件(二进制文件)
gcc -o app a.c b.c d.c(连接生成可只想程序)[单独使用-o选项,没有和-c 或者是-s选项一起使用]
gcc -c hello.c 生成的二进制文件默认为hello.o
如果不想叫这个名字,比如想叫helloworld.o
gcc -c hello.c -o helloworld.o
上面的-o 选项并不是一个连接作用的选项。而起到了重命名的作用。
而且可以指定生成的二进制文件的位置比如 /src/hello.o
-o的重命名的作用不仅可以用在-c中,也可以用在-s中。
gcc -I 指明所使用的头文件所在的位置。
http://www.akae.cn/study/gcc.html