gcc工作流程
- 预处理 -E xxx.c —> xxx.i
宏替换;头文件展开;注释去掉;
gcc -E hello.c -o hello.i - 编译 -S xxx.i —> xxx.s #最浪费时间的操作
gcc -S hello.i -o hello.s - 汇编 -c xxx.s —> xxx.o
gcc -c hello.s -o hello.o - 链接 (无参数) xxx.o —> xxx(可执行文件)
gcc hello.o -o hello
gcc常用参数
-o 指定生成的文件的名字
-I 编译时,指定头文件的路径 gcc sum.c -I ./include/ -o sum
-c 将汇编文件生成二进制文件(即:.o文件) gcc sum.c -c -I ./include/ #生成sum.o文件
-g gdb调试时,需要加的参数 gcc hello.c -o app -g
-D 在编译时,指定一个[宏] gcc hello.c -I ./include/ -D DEBUG -o hello
-Wall 添加警告(warning)信息
-On 优化代码,n是优化级别:1,2,3
int a=10;
int b=a;
int c=b;
printf("%d",c);
优化——>
int c=10;
printf("%d",c);