1、gcc xxx.c主要包含以下4部分功能:
(1) 预处理:主要实现对头文件的包含以及宏替换等
(2) 编 译:主要将高级语言转换为汇编语言
(3) 汇 编:主要将汇编语言翻译成机器指令,得到目标文件
(4) 链 接:主要将目标文件和库文件进行链接,生成可执行文件
2、常见的编译选项
(1) -E - 进行预处理,预处理的结果默认输出到控制台
使用gcc -E xxx.c -o xxx.i 将预处理结果定位到xxx.i文件中,预处理后的文件主要包含:头文件,类型的别名,各种函数的声明等等
(2) -S - 进行编译处理,生成汇编文件xxx.s
(3) -c - 进行汇编处理,生成目标文件xxx.o
(4) gcc/cc xxx.o - 链接处理,生成可执行文件a.out
例:
gcc/cc -E xxx.c -o xxx.i
=> 预处理,生成 .i 文件
gcc/cc -S xxx.i/xxx.c
=> 编译,生成 .s 文件
gcc/cc -c xxx.s/xxx.i/xxx/c
=> 汇编,生成 .o文件
gcc/cc xxx.o/xxx.s/xxx.i/xxx.c
=>链接,生成a.out文件
3、熟悉的选项:
-std - 主要用于指定编译时遵循的C标准
-Wall - 主要用于尽可能的产生警告信息
-Werror - 主要用于将警告当做错误进行处理
4、了解的选项:
-v - 主要用于查看gcc的版本信息
-g - 主要用于生成调试信息(gdb调试)
-O - 主要用于进行优化处理
-x - 主要用于显示指定源代码的编程语言
5、 扩展的选项
man gcc/cc 查看gcc更多的选项等信息