gcc编译有四个步骤:预处理、编译、汇编、链接
前提条件: hello.c
1 预处理? ?gcc -E hello.c -o?hello.i
? ? ? ? -o 指定输出文件为hello.i
? ? ? ? 展开宏、头文件,替换条件编译,删除注释、空行、空白
2 gcc -S 编译 gcc -S hello.i -o hello.s
? ? ? ? 检查语法规范,消耗时间、系统资源最多。
3 汇编 gcc -c hello.S -o hello.o
? ? ? ? 将汇编指令翻译成机器指令
4 链接?
? ? ? ? 数据段合并、地址回填
编译指令
gcc hello.c -o hello.out
? ? ? ? hello.out为编译输出的可执行文件
gcc -I ../ hello.c -o hello.out
? ? ? ? 指令同上,-I参数用于指定包含头文件目录位置(头文件与源码不在同一个位置时使用)。
-E 只做预处理。
-S 只做预处理、编译。
-c 只做预处理、编译、汇编,得到二进制文件。
-g 编译时添加调试信息。gcc hello.c -o hello.out -g
-Wall 显示所有编译警告?gcc hello.c -o hello.out -Wall
-D 注册一个宏?gcc hello.c -o hello.out -D HELLO
????????